방금 ASP.NET Web Forms에서 빠져 나왔고 현재 MVC 초보자입니다. ASP.NET 웹 폼과 달리 MVC가 ViewState를 관리하지 않는다는 것을 읽었습니다. 데이터 지속성을 어떻게 달성 할 수 있는지 궁금합니다. 다음과 같은 형식으로포스트 백 데이터가 유지되지 않습니다.
class MyModel
{
public string TextboxData { get; set; }
public string HiddenData { get; set; }
}
:
@using (Html.BeginForm())
{
@Html.TextBoxFor(m => m.TextboxData)
@Html.HiddenFor(m => m.HiddenData)
}
내 컨트롤러는 간단 하나입니다
나는 강력한 형식의 모델이 간단한 양식을 가지고있다. 나는 모든 다음에 유지됩니다 제출 이전을 통해 데이터를 입력 한 가정 정정 오전, 컨트롤러는 단지 모델을 재사용하기 때문에[HttpPost]
public ActionResult PerformAction(MyModel mv)
{
mv.DoSomething();
return View(mv);
}
: 그것은 단순히 모델의 데이터를 처리하고 다시보기로 전달합니다 새롭게 하다?
사실, TextBoxData에 대한 것이 유지되었지만 (포스트 백 이후에는 텍스트 상자에 입력 된 데이터가 여전히 있음) HiddenData에 대한 텍스트는 유지되지 않았습니다. 내가 여기서 뭔가 잘못하고있는거야?
는 당신이 데이터로 채워진 컨트롤러에서 mv.HiddenData 변수입니다 : 당신이 POST 액션 내부의 원래 게시 값을 수정해야하는 경우
그래서 먼저 ModelState에서 제거 할 필요 다시 게시?그렇지 않은 경우에는 데이터가 뷰로 전송되지 않습니다. 그리고 네, mv에 두 속성에 대한 콘텐츠가 포함되어 있으면보기에 나타나야합니다. HttpGet의 숨겨진 필드에 대한 데이터를 입력했다고 가정합니다 (양식의 숨겨진 필드에 입력 할 수 없기 때문입니다). – Michel