我有一个场景,我有一个部分的视图,通过$.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";
而且partioal视图包括@ViewBag.Error
- 这不是upating无论是。这可能是AJAX的问题吗?
感谢。对不起,没有喜悦。我已经注意到,即使我在控制器方法中设置了ViewBag.Property并尝试显示它,它也不会显示。如果我调试,价值在那里,但表单不更新。我想知道这是否是一个AJAX问题。 – davy
我已更新该问题。 – davy
你能检查提琴手,看看有什么回应?我想知道当您执行POST时,响应是否不会替换包含元素中的内容?见http://stackoverflow.com/questions/7908357/returning-data-to-a-partial-view –