ASP .NET MVC 3 - 提交Ajax表单重定向而不是在页面内更新

时间:2011-09-18 20:48:47

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

我正在提交一个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" />
    
  3. 不确定这是不是红鲱鱼,但我会提到它,因为我在这里碰到了一堵砖墙 - 当我在谷歌浏览器中查看来源时,只有第一个脚本有颜色格式化,这让我觉得我没有没有正确的语法 - 但它对我来说是正确的! 救命啊!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

如果我使用<input type="submit" />则可行。