ASP.NEW MVC3 Ajax BeginForm不像Ajax一样发送

时间:2011-04-27 22:53:56

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

我遇到的问题与许多人之前曾经问过的问题一样,Ajax.BeginForm没有将调用作为ajax发送,即Request.IsAjaxRequest()== false,但是建议的解决方案没有任何运气(缺少js文件,设置'UnobtrusiveJavascript'等。)

我的_ Layout.cshtml 文件如下所示:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>

的Web.config

<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

查看

            @using (Ajax.BeginForm("AjaxTest", new AjaxOptions { UpdateTargetId = "result" }))
            {
                <button class="btn" onclick="this.form.submit();">Hit Me!</button>
            }
            <div id="result"></div>

控制器

    [HttpPost]
    public ActionResult AjaxTest(FormCollection formCollection)
    {
        bool isAjax = Request.IsAjaxRequest();
        return Content("Hello World");
    }

我通过Firebug运行它并且没有任何错误。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

您使用onclick="this.form.submit()"自行提交表单。

删除那个位。至少有机会让AjaxForm显示一些颜色:)

答案 1 :(得分:0)

我不确定你是否应该在onclick中拥有该代码。只需将按钮类型设置为

即可