簡體   English   中英

將當前URL插入@ Html.RouteLink參數以構建鏈接

[英]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中,它將解決我的麻煩。 如果有實現的方法,或者有更好的方法,請提供幫助。

謝謝你們!

RouteLinkActionLink使用RouteTable來構建傳出URL,因此需要修改以自定義URL的RouteTable ,而不是RouteLink配置。

您可以通過多種方式執行此操作,但是使脫離數據庫數據的URL的最靈活的方法是RouteBase

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM