Qui*_*orn 3 .net javascript asp.net-mvc-4
如果用户当前在控制器和参数引用的操作中,是否打算@ Url.Action方法返回当前url?
我有一个简单的控制器设置.
OrderableTest/Details/Id
ResultableTest/Details/Id
Run Code Online (Sandbox Code Playgroud)
如果我@Url.Action("Details", "Orderable")从家庭控制器打电话(Home/Index)或从Resultable/Details我那里得到正确的URL保存到javascript变量("/Orderable/Details").但是,如果我在"详细信息"页面上,则ID将包含在网址中.例如,我在页面上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);
Run Code Online (Sandbox Code Playgroud)
正如@JotaBe在上面的评论中所提到的,UrlHelper使用上下文信息.因此,调用您当前所在页面的@ Url.Action还将包含可选的id /参数.
要解决此问题,您可以将空白的可选参数传递给方法.对于我上面的问题,它使用以下代码解决
var resultableDetailUrl = '@Url.Action("Details", "Resultable", new { id = "" })';
var orderableDetailUrl = '@Url.Action("Details", "Orderable", new { id = "" })';
Run Code Online (Sandbox Code Playgroud)
两者都将正确返回/可订购/详细信息/和/可结果/详细信息/无论用户当前在哪个页面.
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |