【问题标题】:ASP .NET MVC 3 - Submitting an Ajax form redirects instead of updating within pageASP .NET MVC 3 - 提交 Ajax 表单重定向而不是在页面内更新
【发布时间】:2011-11-19 19:57:19
【问题描述】:

我正在提交一个 Ajax 表单,但是当它到达控制器时,Request.IsAjax 返回 false,因此我的页面会重定向。有人知道它为什么会这样做吗?

我已经搜索了互联网并确保:

  1. 我在 <appSettings> 下的 web.config 中有以下内容:

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

  2. 通过查看源代码,我在运行时的页面中有以下脚本:

    <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript" />
    
    <script src="/Scripts/modernizr-1.7.min.js" type="text/javascript" />
    
    <script src="/Scripts/jquery-ui-1.8.11.min.js" type="text/javascript" />
    
    <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript" />
    
    <script src="/Scripts/jquery.validate.min.js" type="text/javascript" />
    
    <script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript" />
    

不确定这是否是一条红鲱鱼,但我会提到它,因为我在这里碰壁了——当我在谷歌浏览器中查看源代码时,只有第一个脚本的颜色被格式化,这让我觉得我没有语法不正确 - 但它看起来对我来说是正确的! 救命!

【问题讨论】:

  • 能贴出AjaxForm代码吗
  • 好的,到此为止:&lt;form action="/Item/TestAjaxMethod" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#filter-results" id="form0" method="post"&gt; &lt;select id="myId" name="MyItem" onchange="submit()"&gt; &lt;option selected="selected"&gt;Option 1&lt;/option&gt; &lt;option&gt;Option 2&lt;/option&gt; &lt;option&gt;Option 3&lt;/option&gt; &lt;/select&gt; &lt;/form&gt;
  • 我应该提到我在同一个控制器上的@Ajax.ActionLinks 工作正常,所以脚本必须没问题。一定是别的东西……

标签: ajax asp.net-mvc-3 scripting unobtrusive-javascript unobtrusive


【解决方案1】:

确保您的脚本引用高于您的 Ajax 调用。加载 fiddler 并确保找到并加载 jquery 脚本。

【讨论】:

  • 他们被找到了,他们确实加载了。我的脚本不在我的 Ajax 调用之上——它们位于页面底部,就在结束 body 标记之前。这可能是问题吗?我在某处读到这是推荐的方法,可能会提高性能。
  • 刚试了一下,没有运气..事实上我的 Ajax.Actionlink 调用正在工作,所以脚本必须没问题。
【解决方案2】:

问题是我如何提交表单。我只是在下拉列表中做一个onchange="submit()"

我现在意识到像这样的 javascript 提交与 ajax 提交不同! :)

如果我使用 &lt;input type="submit" /&gt; 就可以了。

【讨论】:

    猜你喜欢
    • 2020-04-21
    • 2012-06-01
    • 2011-12-18
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    相关资源
    最近更新 更多