ASP.Net MVC3 - 正确处理服务器端的Ajax表单提交

时间:2011-06-09 17:05:17

标签: jquery asp.net-mvc ajax

我有一个表格,我想赋予精彩的Ajax提交善良

@using(Html.BeginForm()) {
  ...
}

我将Html.BeginForm()更改为Ajax.BeginForm()但不清楚服务器端要做什么。

以前,我曾做过类似的事情:

[HttpPost]
public ActionResult EditMyStuff(MyViewModel vm) {
  if(!ModelState.IsValid)
    return View(vm);

  // save stuff
  return RedirectToAction("Index");         
}

如果客户端禁用了javascript,这是我想要保留的东西,但是如果表单是通过Ajax提交的,那么这不是我想要的 - 我希望错误中出现任何错误或“你的更改”已被保存“成功的消息。

这样做的标准方法是什么?

1 个答案:

答案 0 :(得分:2)

您必须为Ajax请求添加If子句

if (Request.IsAjaxRequest()) 
{
    // Return PartialView or Json
}
else 
{
    // Normal response
}