我在MVC环境中,我从我的View调用我的一个Controller方法。控制器方法随后进行一些验证检查并返回到错误的模型状态
的相同视图此时,我期待所有的验证字段如下所示:
<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);
}
答案 0 :(得分:0)
好的可能这是非常微不足道的,但这就是诀窍。
在AJAX Post的OnSuccess中,我确实放了以下内容并且有效:
$("body").html(result);
答案 1 :(得分:0)
如果您的值是在数据库中更新的,或者您是在控制器中获得的,而您只需要在ajax调用的成功函数中添加以下代码,
location.reload(true);
这将起作用...