我需要一些关于如何编写我的应用程序的AJAX部分的帮助/指导。需要关于MVC中我的AJAX表单的流程的建议
我有一个按钮,点击后会弹出一个模式对话框。在该对话框我有有一个文本框和一个按钮来保存值的Ajax表单:
@using(Ajax.BeginForm("SaveText", new AjaxOptions{ OnSuccess = "ajaxSuccess" }))
{
@Html.TextBoxFor(m => m.Text)
<p>
<input type="submit" value="Save" />
</p>
}
当AJAX顺利完成我想要关闭对话框,并刷新我的主网页上的网格:
function ajaxSuccess() {
closeDialog();
refreshGrid();
}
我试图实施验证时遇到了问题。我不确定如何完成我想要的。这里是我的控制器:
public ActionResult SaveText(SaveTextViewModel model)
{
if(ModelState.IsValid)
{
return PartialView("SaveTextPartial", model);
}
repository.SaveText(...);
return PartialView("SaveTextPartial");
}
这里就是我遇到的困难:当我提交表单,并有验证错误,控制器返回的局部视图,但AJAX的onSuccess方法完成。我不知道如何区分错误的成功与没有错误的成功。当我有验证错误时,我的表单关闭,网格刷新,这不是我想要的。
有没有人有任何想法?我是否需要重构AJAX调用的整个流程,还是完全不同?
没有意识到我可以在一个路径中返回一个PartialView,而在另一个路径中返回一个JsonReult,并且javascript能够理解它。 – Dismissile
MVC非常棒;)您可以返回所有可以使用jQuery处理的HTML,JSON,XML或纯文本。 – kamranicus