簡體   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