gpt4 book ai didi

javascript - js中的Url.RouteUrl

转载 作者:行者123 更新时间:2023-11-30 05:43:06 25 4
gpt4 key购买 nike

我有一种情况需要在 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]+" });

我的代码:

var selectS;var selectE;function SearchClick(obj) {

location.href = '@Url.RouteUrl("ListOfTicketAB",new {citystart="' + selectS+ '",cityend="' + selectE+ '"})';

}

selectS 和 selectE 会在其他一些函数中设置。

在上面,我得到了错误:

“/”应用程序中的服务器错误。

路径中有非法字符。说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.ArgumentException:路径中存在非法字符。

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

最佳答案

Now I want to generate url in the same way in javascript, is it possible?

不,javascript 文件不能执行服务器端 Razor 语言。

您可以将此 url 生成为 View 中的全局 javascript 变量,或生成为某些现有 DOM 元素的 HTML5 data-* 属性,您稍后可以在 javascript 文件中访问这些元素:

<script type="text/javascript">
var myUrl = '@Url.RouteUrl("ListOfTicketAB", new { citystart = "_start_", cityend = "_end_" })';
</script>

然后在您的 javascript 中将 2 个占位符替换为现有 javascript 变量 selectSselectE 的相应值:

var selectS;
var selectE;

function SearchClick(obj) {
var url = myUrl.replace('_start_', selectS).replace('_end_', selectE);
window.location.href = url;
}

关于javascript - js中的Url.RouteUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19657659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com