首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ajax.beginform有什么问题?

ajax.beginform有什么问题?
EN

Stack Overflow用户
提问于 2016-09-16 07:06:13
回答 1查看 510关注 0票数 1

我正在使用ASP.Net MVC 5和C#。我正在用VS2015脚手架特性从我的模型结构生成视图和控制器。控制器和视图为我的应用程序提供了一些编辑、创建和删除记录的基本功能。所有表单视图都包含此声明:

代码语言:javascript
复制
@using (Html.BeginForm())

我试图将这一声明替换为:

代码语言:javascript
复制
@using (Ajax.BeginForm("Edit", new AjaxOptions()))

我在编辑动作法中改变了一些东西。如您所见,我注释了一些代码,以避免重定向(例如显示错误消息)。

代码语言:javascript
复制
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit([Bind(Include = "....")] MyDataObject obj)
    {
     /*   if (ModelState.IsValid)
        {
            ...
            db.SaveChanges();
            return RedirectToAction("Index");
        }*/
        return View(obj);
    }

当然,我已经包含了和头中包含的2JS脚本。A还在web.config中添加了这一行:

代码语言:javascript
复制
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

我没有JS错误,但是完整的页面是刷新的。我可以看到它在我的页面上添加了这样的标签(在_layout和表单中)

代码语言:javascript
复制
@DateTime.Now.ToLongTimeString()

怎么了?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-16 07:33:07

如果只想重新加载表单,那么就必须定义AjaxOptions,如下所示:

代码语言:javascript
复制
@using (Ajax.BeginForm(new AjaxOptions
{
    HttpMethod = "POST",
    Url = "api/Person",
    OnComplete = "personSavedComplete" // Your function name define your form refresh logic into this
}))

并确保使用以下脚本:

代码语言:javascript
复制
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"> </script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39525606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档