【问题标题】:ASP.NEW MVC3 Ajax BeginForm not sending as AjaxASP.NEW MVC3 Ajax BeginForm 不作为 Ajax 发送
【发布时间】:2011-04-27 22:53:56
【问题描述】:

我遇到了许多人之前问过的同样的问题,其中 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 运行它并且没有收到任何错误。

我在这里做错了什么?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我不确定您是否应该在 onclick 中包含该代码。只需将按钮类型设置为提交

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-10
        • 1970-01-01
        相关资源
        最近更新 更多