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