ASP.NET MVC 4
응용 프로그램에서 작업 중입니다. 나는 EF 5
과 Code First
을 사용합니다. N 관계 :면도기에서 요청간에 ICollection 엔티티 속성을 유지하는 방법
public class Menu
{
//some properties
public virtual ICollection<Document> Documents { get; set; }
}
과 : 나는 1 개의 엔티티가
public class Document
{
//some properties..
public int MenuID { get; set; }
public virtual Menu Menu { get; set; }
}
내가 [HttpPost]
및 [HttpGet]
방법과 Edit
볼 수 있습니다. 나는이 같은 GET
작용을 통해 모델을 전달하는 경우 :
@Html.HiddenFor(m => m.Documents)
다음 :
Menu model = unitOfWork.MenuRepository.GetById(Id);
if (model != null)
{
return View(model);
}
모든 권리를, 그 모델은 1 Documents
을 포함하지만 내 면도기보기에 단순히 시도하는 경우에 볼 수 있습니다 Post
액션에 양식을 제출하면 Documents
속성이 null이라는 것을 알 수 있습니다.
Documents
을 (를) 어떻게 유지할 수 있습니까?
글쎄, 나는 이것을 위해서 노력했다. 첫째로, ICollection에 대한 인덱서를 사용할 수없는 것처럼 보입니다. 엔티티의 타입을 다른 것으로 바꾸더라도 여전히 아주 우아한 해결책은 아닙니다. – Leron
안녕하세요 @ Leron - 죄송합니다. ICollection을 사용해 본 적이 없지만 내 뇌의 일부가 "그렇습니다. 제목에서 그렇게 말했습니다."라고 생각했습니다. 해결책은 우아하지 않을 수도 있지만 이것이 그 방법입니다. 나는 당신과 같은 우주선에 있었고, 이것은 효과가있었습니다. 이 코드를 Display 또는 Editor 템플릿에 포함 시켜서 대신 참조하고 템플릿이 대신 작업을하도록 할 수 있습니다. 당신은 ToList() 대신 인덱서 기능을 추가하기 위해 –
을 추가 할 수 있습니다. 그렇지 않으면 인덱서가 필요합니다. 그렇지 않으면 MVC 엔진이 올바르게 다시 바인드 할 수 없습니다. 사실 그것은하지 않을 것입니다. 이것이 엔진 작동 방식입니다. 나는 전에 여러 가지 방법을 시도했고 이것이 유일한 방법이었다 - 나는 또한 똑같은 것을 확인한 블로그 게시물을 읽었다. –