Ajax.BeginForm不能异步工作

时间:2014-12-15 06:53:18

标签: jquery asp.net-mvc asp.net-ajax

我在Index视图中使用Ajax.BeginFrom来测试Home controller中的方法

@using (Ajax.BeginForm(actionName: "TestMethod",
        controllerName: "Home",
        ajaxOptions: new AjaxOptions
        {
            HttpMethod = "POST",
            InsertionMode = InsertionMode.Replace,
            UpdateTargetId = "TestInfo",
            LoadingElementId = "Progress"
        }))
{
    <input type="submit" value="Search" />
    <div id="TestInfo"></div>
}

[HttpPost]
public virtual ActionResult TestMethod()
{
    return Content("ok");
}

但提交后,页面重定向到/ Home / TestMethod并显示'ok'。

我添加了

<add key="UnobtrusiveJavaScriptEnabled" value="true" />

在webconfig和

<script src="@Links.Scripts.jquery_unobtrusive_ajax_min_js" type="text/javascript"></script>

在我的布局中。但它仍然不能异步工作。 问题在哪里?

1 个答案:

答案 0 :(得分:6)

当发生这种情况时,几乎总是因为您的脚本文件未加载,请参阅下面的帖子:

http://completedevelopment.blogspot.com/2011/02/unobstrusive-javascript-in-mvc-3-helps.html

在web.config中设置提到的标志:

  1. 包含对jQuery库的引用〜/ Scripts / jquery-1.4.4.js

  2. 在〜/ Scripts / jquery.unobtrusive-ajax.js

    中加入一个引用这个魔法的库的引用