2012-11-22 4 views
1

사용자 지정 개체가있는보기 모델이 있습니다. 처음에는 Foo를 채우고 Foo의 몇 가지 속성을 사용합니다.MVC 4의 모든 사용자 지정 개체 속성을 포함하는 방법 HttpPost

게시물에서보기 모델에서 Foo가 null 인 것을 발견했습니다.

내보기에 @Html.HiddenFor(x => x.Foo.Id)을 추가하면 Foo에 적어도 ID가 채워질 수 있지만 모든 속성에 대해 유사한 코드를 추가해야 할 수도 있습니다.

전체 개체를 다시 보낼 수있는 방법이 있습니까?

public class RequestModel 
    { 
     public Foo Foo{ get; set; } 

     [Required] 
     [Display(Name = "Comment")] 
     public string Comment { get; set; } 
    } 

컨트롤러

public ActionResult Index(int? id) 
{ 
    //Populate Foo here using EF and add it to the model 
    var model = new RequestModel { Foo = foo };  
    return View(model); 
} 



[HttpPost] 
public ActionResult Index(int? id, RequestModel model) 
{ 
    return View(model); 
} 

보기

@Html.DisplayTextFor(m=>m.Application.Name) 

+0

보기 및 컨트롤러에서 코드를 추가 할 수 있습니까? – heads5150

+0

질문을 업데이트했습니다. 제 질문은 VM이 EF 객체를 노출해야하는지, 아니면 컨트롤러가 단순한 값을 뷰에 매핑해야하는지 여부입니다. – Kye

+0

왜'Foo' 속성을 모두 액션으로 보내시겠습니까? – Jan

답변

1

는 솔루션에 원하는 속성 뷰 모델을 추가합니다. 귀하의 검증 등을 넣어 그것을 사용하여 귀하의 페이지와 컨트롤러 사이에 귀하의 데이터를 이동하고 귀하의 EF 개체에 속성을 매핑합니다.

관련 문제