Los*_*ost 4 ajax asp.net-mvc jquery razor asp.net-mvc-4
我在 MVC 环境中,我正在从我的视图中调用我的控制器方法之一。控制器方法随后进行一些验证检查并返回到具有错误模型状态的相同视图
在这一点上,我期待我的所有验证字段如下所示:
<td>@Html.ValidationMessageFor(m => m.Comments)</td>
Run Code Online (Sandbox Code Playgroud)
点亮错误信息。那不会发生。我认为这是因为我需要使用新的错误 Model重新加载视图。我怎样才能做到这一点?
以下是从我的 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?
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
以下是我的控制器:
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);
}
Run Code Online (Sandbox Code Playgroud)
好吧,这可能是非常微不足道的,但这确实成功了。
在 AJAX 帖子的 OnSuccess 中,我确实输入了以下内容并且它起作用了:
$("body").html(result);
Run Code Online (Sandbox Code Playgroud)