MVC를 표시하고 ASP.NET에서 뷰 모델에 (하지 편집) 데이터를 바인딩하는 방법 :나는 다음과 같은 일반적인 방법으로 사용자 정의 뷰 모델을 사용하고
public ActionResult Edit(int id)
{
// Attempt to fetch object from DB
var obj = Repository.GetObject(id);
// Populate Dto
var viewModel = new ObjectViewModel();
var adapter = new ObjectAdapter(obj, viewModel, da);
adapter.MapDto();
return View(viewModel);
}
public ActionResult Edit(int id, ObjectViewModel viewModel)
{
// Fetch object from DB
var obj = Repository.GetObject(id);
// Update object from DTO
var adapter = new ObjectAdapter(obj, viewModel, da);
adapter.MapObject();
// Save back to DB
Repository.SaveChanges();
// Return to the Index
return RedirectToAction("Index");
그럼 ... 내 견해로는 편집을 위해서가 아니라 약간의 데이터를 표시하고 싶습니다. 현재 시도 :
<%: Model.Data %>
그리고 나는 Html.Label()을 시도했다. 둘 다 데이터를 잘 표시합니다.
하지만 문제는 이것입니다. POST 동작에서 "< % : Model.Data %>"또는 레이블이 ViewModel에 다시 바인딩되지 않습니다. 따라서 "MapObject()"는 POST 액션에서 "Model.Data"에 대해 null을 매핑합니다.
여기 간단한 해결책이있을 것으로 기대하고 있습니까?
도움을 주시면 감사하겠습니다.
건배,
팀.
그건 멋지게 마쳤습니다 - 고마워요, 친구! – Hanshan