2010-06-28 7 views
4

중첩 된 특성을 사용하여 모델 바인딩을 올바르게 처리하는 방법에 대한 좋은 해결책을 모색하고 있습니다. 컨트롤러에서ASP.NET MVC에서 중첩 모델을 처리하는 방법

public class Organization : IEntity 
{ 
    [ScaffoldColumn(false)] 
    public int ID 
    { 
     get; 
     set; 
    } 

    [LocalizedDisplayName("Goals")] 
    public virtual ICollection<OrganizationGoal> Goals 
    { 
     get; 
     set; 
    } 
} 

나는이 같은 데이터를 업데이트하려고 :

[HttpPost] 
public ActionResult Edit(string organizationIdentifier, FormCollection values) 
{ 
    var organization = organizationService.GetByIdentifier(organizationIdentifier); 

    if (TryUpdateModel(organization)) 
    { 
     organizationService.Save(organization); 
     return RedirectToAction("Edit"); 
    } 

    return View("Edit"); 
} 

을하지만 TryUpdateModel 항상 거짓없이 검증을 반환 I는 다음과 같은 다른 자식 모델의 목록이 하나 개의 모델이 메시지가 UI에 표시됩니다. UI는 표준 MVC 도우미 EditorFor를 사용하여 작성됩니다.

이렇게하는 것이 가장 좋은 방법은 무엇입니까? 꽤 정상적인 시나리오의 경우 정보를 찾기가 쉽지 않습니다.

감사합니다.

+0

크리스토퍼, 당신은 키 값 쌍은 FormCollection를 통해 게시되고있는 대한 몇 가지 세부 사항을 포함 할 수 있습니까? –

답변

0

GetByIdentifier를 사용하여 쿼리하는 ID 열은 다음과 같습니다. 그렇다면 왜 문자열을 전달하지만 정의에 int로 사용합니까?

또한 TryUpdateModel에 대해 읽어 보면 UpdateModel을 대신 사용할 수있는 것 같습니다.

http://msdn.microsoft.com/en-us/library/dd460189.aspx

관련 문제