$.get
을 통해로드 된 부분이있는 뷰가 있습니다. 부분은 다음과 같은 코드가 있습니다 :MVC 4 서버 측 유효성 검사가 표시되지 않습니다
@model MvcApplication1.Models.CmaPartialModel
@using (Ajax.BeginForm("TestPost", new AjaxOptions { HttpMethod = "Post" }))
{
@Html.ValidationSummary()
for(var i = 0; i < Model.DataItemsWithLabels.Count; i++)
{
@Html.LabelFor(m => m.DataItemsWithLabels[i].DataName,Model.DataItemsWithLabels[i].DataName)
@Html.TextBoxFor(m => m.DataItemsWithLabels[i].DataValue)
@Html.ValidationMessageFor(m => m.DataItemsWithLabels[i].DataValue,"data value error")
@Html.TextBoxFor(m => m.DataItemsWithLabels[i].DataName)
@Html.ValidationMessageFor(m => m.DataItemsWithLabels[i].DataName,"data name error")
}
<input type="submit" value="Save" />
}
내 컨트롤러 액션은 다음과 같습니다 클라이언트 측 유효성 검사의 측면에서 예상대로
[HttpPost]
public ActionResult TestPost(CmaPartialModel model)
{
if (ModelState.IsValid)
{
// code removed for quesiton
}
else
{
ModelState.AddModelError("E!", "Want to display this!");
}
return PartialView("Transaction", model);
}
모두가 노력하고 있습니다.
그러나 컨트롤러에 추가 한 오류는 표시되지 않습니다.
내가 뭘 잘못하고 있니?
나는 inlcude하는 컨트롤러 액션을 변경 한
편집 : ViewBag.Error = "error message";
그리고 @ViewBag.Error
을 포함하는 partioal보기 -이 중 upating되지 않습니다. AJAX에 문제가 있습니까?
감사 없었다 아니라 오류로. 죄송합니다. 기쁨이 없습니다. 컨트롤러 메서드에서 ViewBag.Property를 설정하고 표시하려고해도 표시되지 않습니다. 디버깅 할 경우 값은 있지만 폼이 업데이트되지 않습니다. 그것이 AJAX 문제인지 궁금하네요. – davy
질문을 업데이트했습니다. – davy
Fiddler에서 응답 내용을 확인할 수 있습니까? POST를 수행 할 때 응답이 포함 된 요소의 내용을 대체하지 않는지 궁금합니다. http://stackoverflow.com/questions/7908357/returning-data-to-a-partial-view –