0

我正在提交一个Ajax表单,但是当它命中控制器时,Request.IsAjax返回false,因此我的页面重定向。任何人都知道为什么会这样做?ASP .NET MVC 3 - 提交一个Ajax表单重定向而不是更新页面

我已经在网上搜索并确信:

  1. 我已在在我的web.config以下<appSettings>下:

    <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" /> 
    

不知道这是不是红鲱鱼,但我会提到它,因为我在这里碰到一堵砖墙 - 当我在Google Chrome浏览器中查看源代码时,只有第一个脚本具有颜色格式,这让我觉得我没有正确的语法 - 但它看起来很适合我! 帮助!

+1

可以发布给ajaxForm代码 – Rafay

+0

当然,这是迄今为止: '<形式 行动=“/项目/ TestAjaxMethod” 数据阿贾克斯=“真” 数据AJAX模式=“替换” 数据Ajax的更新= “#过滤结果” ID = “form0” 方法= “POST”> <选择ID = “MYID” 名称= “MyItem” 平变化= “提交()”> <选项selected =“selected”>选项1 ' – PeteGO

+0

我应该提一下,在同一个控制器上我的@ Ajax.ActionLinks可以正常工作,因此脚本必须正常。必须是其他东西... – PeteGO

回答

0

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

我现在已经意识到,一个JavaScript提交就像ajax提交不一样! :)

如果我使用<input type="submit" />它的作品。

0

确保脚本引用位于Ajax调用之上。加载fiddler并确保找到并加载jquery脚本。

+0

他们被发现,他们负载。 我的脚本不在我的Ajax调用之上 - 它们位于页面底部,就在关闭body标签之前。这可能是问题吗?我在某处读到这是推荐的方法,可能会提高性能。 – PeteGO

+0

试试吧,看看:) –

+0

刚刚试过了,没有运气..实际上我的Ajax.Actionlink调用正在工作,所以脚本一定没问题。 – PeteGO