Возможно, я ошибаюсь, так как я нооб для .NET MVC, но есть способ вставить текущий url в качестве параметра в @ Html.Routelink?Вставить текущий 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
, что и есть.
Выберите категорию, затем все связанные подкатегории отображаются в отдельном div на основе запроса linq в контроллере.
Однако, чтобы правильно отобразить продукты, 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, это решит мои проблемы. Если есть способ достижения или лучший способ сделать это, пожалуйста, помогите.
Спасибо всем!