我正在使用ASP.Net MVC 5和C#。我正在用VS2015脚手架特性从我的模型结构生成视图和控制器。控制器和视图为我的应用程序提供了一些编辑、创建和删除记录的基本功能。所有表单视图都包含此声明:
@using (Html.BeginForm())我试图将这一声明替换为:
@using (Ajax.BeginForm("Edit", new AjaxOptions()))我在编辑动作法中改变了一些东西。如您所见,我注释了一些代码,以避免重定向(例如显示错误消息)。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "....")] MyDataObject obj)
{
/* if (ModelState.IsValid)
{
...
db.SaveChanges();
return RedirectToAction("Index");
}*/
return View(obj);
}当然,我已经包含了和头中包含的2JS脚本。A还在web.config中添加了这一行:
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>我没有JS错误,但是完整的页面是刷新的。我可以看到它在我的页面上添加了这样的标签(在_layout和表单中)
@DateTime.Now.ToLongTimeString()怎么了?
谢谢
发布于 2016-09-16 07:33:07
如果只想重新加载表单,那么就必须定义AjaxOptions,如下所示:
@using (Ajax.BeginForm(new AjaxOptions
{
HttpMethod = "POST",
Url = "api/Person",
OnComplete = "personSavedComplete" // Your function name define your form refresh logic into this
}))并确保使用以下脚本:
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"> </script>https://stackoverflow.com/questions/39525606
复制相似问题