Razor@Url.Action返回一个javascript变量,并带有可选的id参数
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")
,我将获得保存到javascript变量("/Orderable/Details")
的正确URL。然而,如果我在"详细信息"页面上,则id会包含在url中。例如,我在页面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 = "" })';
无论用户当前在哪个页面上,两者都将正确返回/Orderable/Details/和/Resulable/Details/。
相关文章:
- 如何根据单击的按钮发送id参数
- 将参数中类似形式的ID传递给函数click()
- 如何传递元素's ID作为使用getElementById的函数的参数
- AngularJS-点击对象,访问它's ID&以该ID作为参数激发函数
- HTML span id 作为 JavaScript 函数参数
- 元素id未被接受为函数参数
- 通过函数参数传递id
- 如何使用表行id作为angularjs函数的参数
- 当名称空间在id参数之前声明时,Angular UI路由器停止工作
- 如何添加id和额外的参数到一个放大弹出iframe与youtube视频,所以我可以控制与API youtube播放器
- angular$resource delete-传递id参数
- 无法获取用户 ID 路由参数以在反应路由器中继上工作
- 如何将标签 ID 作为参数传递给 javascript 函数,然后根据需要获得不同标签的文本
- Node.js 在使用 id 参数时在 dpd.get 上部署 404 错误,在 dpd.put 上部署 400 错误
- 如何在 ember.js 中访问路由文件中的 :id 参数
- 使用 addEventListener 在 JavaScript 中设置单独的函数参数以具有唯一的 ID
- 如何在谷歌跟踪代码管理器 noscript 标签中参数化容器 id
- 如何使用点击事件递增网址 ID 参数
- Javascript id 作为 href 中的参数
- 使用FOSJsRoutingBundle和Ajax加载html内容时的延迟(路由参数{id})