我有一种情况,我需要在 ASP.NET MVC 站点的 javascript 中跳转 url。
众所周知,我们可以在 xx.cshtml 中使用 @Url.RouteUrl("RouteName", new { params}) 生成 url。现在我想在javascript中以同样的方式生成url,可以吗?
我努力了:
window.location.href ='@Url.RouteUrl("RouteName", new {param1="' + param+ '"}) %>'。
但是,它不起作用。
我的路线:
routes.MapRoute(
"ListOfTicketAB",
"piao/{citystart}-{cityend}",
new { controller = "Tickets", action = "ListS2S", traintype = 0, sorttype = 0, page = 1 },
new { citystart = "[a-zA-Z0-9]+", cityend = "[a-zA-Z0-9]+" });
我的js:
var selectS;var selectE;function SearchClick(obj) {
location.href = '@Url.RouteUrl("ListOfTicketAB",new {citystart="' + selectS+ '",cityend="' + selectE+ '"})';
}
selectS 和 selectE 将在其他一些函数中设置。
有了上面,我得到了错误:
“/”应用程序中的服务器错误。
路径中的非法字符。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:路径中有非法字符。
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。