2013-08-19 89 views
2

我有以下的jQuery函數JQuery的發佈網址

function refreshTheGrid(myData, ceduleDateFrom, ceduleDateTo, paramOrderNo) { 



    var myData2 = { 
     CeduleDateFrom: ceduleDateFrom, 
     CeduleDateTo: ceduleDateTo, 
     ParamOrderNo: paramOrderNo 
    }; 


    var theUrl = "UpdateCheckBox"; 
    var theUrl2 = ""; 

    $.ajax({ 
     type: "POST", 
     url: theUrl, 
     data: myData, 
     dataType: "text", 
     success: function (data) { 
      $.ajax({ 
       type: "POST", 
       url: theUrl2, 
       data: myData2, 
       dataType: "text", 
       success: function (data) { 
        $('#monbouton').click(); 
       } 
      }) 
     } 
    }) 
    popup.Hide(); 
    void (0); 
} 

我的應用程序是http://localhost/JprMvc/

當我POST方法是通過Fiddler2

POST /JprMvc/CeduleGlobale/UpdateCheckBox HTTP/1.1 

叫下面是捕獲
POST /JprMvc/ HTTP/1.1 

直到我從我的URL中刪除CeduleGlobale部分之前,我遇到了問題。現在一切正常。

我認爲這是一個路由問題,但我不確定。

我的路由是

routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "CeduleGlobale", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 

它現在,但似乎武斷。

我應該從我的路由中刪除默認值,並把它放回jQuery中。

我在想什麼?

回答

3

我通常將路由作爲默認值,並在jQuery調用中更改控制器。

路由代碼

routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 

jQuery代碼

$.ajax({ 
     type: 'GET', 
     dataType: 'json', 
     timeout: 300000, //5 minutes (in milliseconds) 
     url: '/YourApplicationName/YourContollerName/YourMethodName', 

//... 
+0

的myData的是在函數調用中傳遞的參數,mydata2是如在第二函數調用中的參數傳遞一個簡單的數據,這是由設計。 – SerenityNow

+1

我更新了我的答案以刪除不正確的部分。 – JabberwockyDecompiler

+1

問題是我的應用程序沒有家庭控制器。家是CeduleGlobale。這是一個大否不? – SerenityNow