ASP.NET MVC 4 AJAX提交表单无法正常工作
我想一个形式从同步转换使用MVC 4ASP.NET MVC 4 AJAX提交表单无法正常工作
的Ajax.BeginForm辅助方法,在我看来,异步I有:
@{
ViewBag.Title = "Users > Edit";
var options = new AjaxOptions()
{
Url = Url.Action("Edit", "User"),
LoadingElementId = "saving",
LoadingElementDuration = 2000,
Confirm = "Are you sure you want to save this User?"
};
}
<div id="saving" style="display:none; color:Red; font-weight: bold">
<p>Saving...</p>
</div>
@using (Ajax.BeginForm(options))
{
@Html.ValidationSummary(true)
<fieldset>
.... FIELDS ...
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
单击提交按钮时正在执行完整的回发。我的操作方法如下所示:
[HttpPost]
public ActionResult Edit(User user)
{
if (ModelState.IsValid)
{
_repository.Save(user);
TempData["message"] = String.Format("{0} has been saved.", user.Username);
}
return View(user);
}
有什么我失踪了吗? MVC 4当前版本有几个问题?
在我的Web.Config中,我将ClientValidationEnabled和UnobtrusiveJavaScriptEnabled设置为true。
我也有这些在我的_Layout.cshtml规定:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
有我丢失的东西?
也许你错过了不显眼的AJAX脚本:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
+1你得到它:D – 2012-01-30 15:39:29
是啊,你发现它!有validate.unobtrusive.js等等等等Doh!感谢:D – adamwtiko 2012-01-30 15:40:36
你已经救了我的一天! – 2013-06-30 15:24:39
如果我理解正确,你正在试图把数据上传到控制器,成功后你需要去主页?如果不是,你能否澄清。因此,将尽力帮您
if (ModelState.IsValid)
{
_repository.Save(user);
TempData["message"] = String.Format("{0} has been saved.", user.Username);
return RedirectToAction("yourActionToRedirect"); // after succesfull it will go to the index view
}
我有同样的问题...我已经更新了所有js文件与NuGet包控制台。
只是我的2美分,而且在写作的时候,jquery.unobtrusive.ajax文件不包含对过时的jQuery函数调用“.live”(=>它是从jQuery的1.9+版本删除)jquery live
我觉得有像出现4次,你必须与。对改变,现在它工作正常;-)
重要事项; jquery-1.9.0.min.js不支持Ajax.FormBegin和Ajax.ActionLink :( – 2013-01-20 20:48:57