繁体   English   中英

Razor @ Url.Action将可选的id参数返回给javascript变量

[英]Razor @Url.Action returns with the optional id parameter to a javascript variable

如果用户当前在控制器和参数引用的操作中,是否打算@ Url.Action方法返回当前url?

我有一个简单的控制器设置。

OrderableTest/Details/Id
ResultableTest/Details/Id

如果我从家庭控制器(Home/Index)Resultable/Details调用@Url.Action("Details", "Orderable") ,我会将正确的URL保存到javascript变量("/Orderable/Details") 但是,如果我在“详细信息”页面上,则ID将包含在网址中。 例如,我在@Url.Action("Details", "Orderable") Orderable/Details/12345页面上,我调用@Url.Action("Details", "Orderable") ,而不是获得"/Orderable/Details"我得到"/Orderable/Details/12345" 这是预期的功能吗?

路由映射是默认的。

Javascript按要求:

var orderableDetailUrl = '@Url.Action("Details", "Orderable")';
var resultableDetailUrl = '@Url.Action("Details", "Resultable")';
alert(orderableDetailUrl);
alert(resultableDetailUrl);

正如@JotaBe在上面的评论中所提到的,UrlHelper使用上下文信息。 因此,调用您当前所在页面的@ Url.Action还将包含可选的id /参数。

要解决此问题,您可以将空白的可选参数传递给方法。 对于我上面的问题,它使用以下代码解决

var resultableDetailUrl = '@Url.Action("Details", "Resultable", new { id = "" })';
var orderableDetailUrl = '@Url.Action("Details", "Orderable", new { id = "" })';

两者都将正确返回/可订购/详细信息/和/可结果/详细信息/无论用户当前在哪个页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM