我在服务器(IIS6)上进行路由时遇到问题。它在开发环境中运行正常:
routes.MapRoute(
"FindCities",
"FindCities/{state_id}",
new { controller = "Regions", action = "FindCitiesByStateID", state_id = "" });
我在这里称之为:
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "FindCities/" + state_id,
data: "{}",
dataType: "json"
...
我拥有的所有路线:
routes.MapRoute(
"Default",
"{controller}.aspx/{action}/{id}",
new { action = "Index", id = "" }
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
);
我已经尝试过url:“FindCities.aspx /”+ state_id和“FindCities.aspx / {state_id}”等变体,但它找不到正确的方法。 为IIS6编写路由的正确方法是什么? TIA
答案 0 :(得分:0)
我已经写了一个直接的网址,如果你知道如何为IIS6写路由,请回答
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "Regions.aspx/FindCitiesByStateID/",
data: 'state_id=' + state_id,
dataType: "json"
...
答案 1 :(得分:0)
@ 1gn1ter你考虑过使用jquery.ajax url @ Url.Action(“”)方法吗?通过使用@ Url.Action(“”),您可以在运行时解析整个URL。因此,它将在开发和生产环境中相匹配。
如果您需要使用该特定路线,您还可以使用@ Url.RouteUrl()将您的路线名称作为参数传递。
示例强>
$("#something").click(function(){
var values = {cityId: $("#txtCity").val() }
$.ajax({
//Other ajax definitions like type, content, datatype, etc
url: '@Url.Action("YourActionName", "YourControllerName")',
data: values,
success: function(data){
//Do something
},
error: function(x, y, z){
//Something bad happened
}
});
});