Jquery ajax调用成功中的Window.location不起作用
我的路线-Jquery ajax调用成功中的Window.location不起作用,jquery,ajax,asp.net-mvc,asp.net-ajax,Jquery,Ajax,Asp.net Mvc,Asp.net Ajax,我的路线- routes.MapRoute( name: "SupplyChainPressureSocialResults", url: "supply-chain-pressure/results/{id}", defaults: new { controller = "SupplyChainPressure", action = "Results" } ); 控制器方法- //GET:/supply-chain-pressure/ScptR
routes.MapRoute(
name: "SupplyChainPressureSocialResults",
url: "supply-chain-pressure/results/{id}",
defaults: new { controller = "SupplyChainPressure", action = "Results" }
);
控制器方法-
//GET:/supply-chain-pressure/ScptResult/{id}
public ActionResult ScptResult(int resultid)
{
// do something
return View();
}
ajax cal-
$.ajax({
type: "POST",
url: configMap.sitePath + "api/Quiz/" + quizResponse.quizId,
data: JSON.stringify(quizResponse),
success: function (data) {
window.location.href = configMap.sitePath + 'supply-chain-pressure/ScptResult' + data.data.quizInstanceID;
},
但由于某些原因,重定向没有发生。有人能帮忙吗?您要重定向到的地方与您的路线不匹配。您的路线正在寻找: 供应链压力/结果/{id} 但您正在重定向到: 供应链压力/ScptResult/{id} 您的路由将永远不匹配,因为您传递的是ScptResult而不是results 您要做的是将管线定义更改为:
routes.MapRoute(
name: "SupplyChainPressureSocialResults",
url: "supply-chain-pressure/{action}/{id}",
defaults: new { controller = "SupplyChainPressure", action = "results" }
);
问题不见了 应该是——
window.location.href = configMap.sitePath + 'supply-chain-pressure/ScptResult/' + data.data.quizInstanceID;
我错过了结尾处的“/”。谢谢注意。我做同样的配置。但是它仍然不起作用-routes.MapRoute名称:SupplyChainPressureResult,url:supply chain pressure/ScptResult/{resultid},默认值:new{controller=SupplyChainPressure,action=ScptResult};您需要将该管线放置在默认管线之上。这有帮助吗?你所有的URL都是静态的,所以它们可能会在生产中中断