[英]Insert current URL into @Html.RouteLink parameter to build a link
我可能是錯誤的方式,因為我是.NET MVC的菜鳥,但是有沒有辦法將當前URL作為參數插入@ Html.Routelink?
我將局部視圖傳遞到頁面中,以顯示基於當前類別的子類別列表。
這是我的控制器邏輯:
public PartialViewResult SubcategoryMenu(string category)
{
IEnumerable<string> subcategories = repository.Products
.Where(x => x.SubCategory.Category.CategoryName == category)
.Select(x => x.SubCategory.SubCategoryName)
.Distinct()
.OrderBy(x => x);
return PartialView(subcategories);
}
這是我的部分視圖,我試圖將當前類別的URL放入:
@model IEnumerable<string>
@foreach (var link in Model)
{
@Html.RouteLink(link, new
{
controller = "Product",
action = "List",
category = "INSERT CURRENT URL HERE",
subcategory = link,
page = 1
}, new { @class = "btn btn-block btn-default btn-lg" })
}
顯示頁面時,將列出所有產品和類別,沒有問題。 當我單擊類別時,URL是http://localhost/Category2
,這就是我想要的。
單擊一個類別,然后根據控制器中的linq查詢,將所有關聯的子類別顯示在單獨的div中。
但是,要正確顯示產品,為子類別視圖生成的url必須為http://localhost/Category/Subcategory
,無論我如何使用@ Html.RouteLink甚至是@ Html.Actionlink,我都能得到是http://localhost/Subcategory
如果我在@ Html.Routelink中將文本傳遞給controller =“ something”,它將顯示http://localhost/something/Subcategory
所以我一直在嘗試獲取與之匹配的當前URL必需的類別已成功傳遞到子類別@ Html.Routelink。
如果有一種方法可以將當前URL插入到子類別RouteLink中,它將解決我的麻煩。 如果有實現的方法,或者有更好的方法,請提供幫助。
謝謝你們!
RouteLink
和ActionLink
使用RouteTable
來構建傳出URL,因此需要修改以自定義URL的RouteTable
,而不是RouteLink
配置。
您可以通過多種方式執行此操作,但是使脫離數據庫數據的URL的最靈活的方法是RouteBase
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.