我处于MVC环境中,我从我的View调用了一个Controller方法。Controller方法随后执行一些验证检查,并使用错误的模型状态返回到同一个View。
此时,我期望所有的验证字段都像下面这样:
<td>@Html.ValidationMessageFor(m => m.Comments)</td>
出现错误消息时应该亮起来。但这并没有发生。我认为这是因为我需要用新的错误模型重新加载视图。我该怎么做呢?
以下是我的Ajax代码摘录:
$("#Save").click(function () {
var model = {
ApplicationNumber: '@Model.ApplicationNumber',
ApplicationId :'@Model.ApplicationId' ,
Name: $('#Name').val(),
CreateDate: $('#CreateDate').val(),
OverrideHireDate: $('#OverrideHireDate').val(),
Amount: $('#Amount').val(),
VendorId: $('#Vendor').val(),
Comments: $('#Comments').val(),
CurrentState: '@Model.CurrentState',
CurrentStatusDate: '@Model.CurrentStatusDate'
};
$.ajax({
data: model,
url: '@Url.Action("SaveApplication", "Applications")',
type: "POST",
success: function (result) {
$(function () {
// some code to activate validation controls?
});
}
});
});
以下是我的控制器:
public ActionResult SaveApplication(ApplicationModel application)
{
if (!ModelState.IsValid)
{
// ModelState.AddModelError("Name", "This is a Test");
return View("New",application);
}
ApplicationBLL.SaveApplication(application);
return Content(string.Empty);
}
.submit()
事件并检查$('form').valid()
-如果为false
,则取消默认提交并在不进行ajax调用的情况下退出函数。您可以通过仅使用data: '$('form').serialize(),
来简化代码,这将执行您的var model = {...}
所做的操作。 - user3559349