我有以下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
在我从网址中删除CeduleGlobale部分之前,我遇到了调用问题。现在一切正常。
我认为这是一个路由问题,但我不确定。
我的路由
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "CeduleGlobale", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
它现在有效,但似乎是随意的。
我应该从路由中删除默认值并将其放回jquery。
我缺少什么?
答案 0 :(得分: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',
//...