我可能会这样做错误的方式,因为我是一个.NET MVC的noob,但有没有一种方法来插入当前URL作为参数一个@ Html.Routelink?插入当前URL到@ Html.RouteLink参数来建立一个链接
我将部分视图传入页面以显示基于当前类别的子类别列表。
这里是我的控制器逻辑:
public PartialViewResult SubcategoryMenu(string category)
{
IEnumerable subcategories = repository.Products
.Where(x => x.SubCategory.Category.CategoryName == category)
.Select(x => x.SubCategory.SubCategoryName)
.Distinct()
.OrderBy(x => x);
return PartialView(subcategories);
}
这里是我的,我想获取当前类别网址为局部视图:
@model IEnumerable
@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 for controller =“something”,将显示http://localhost/something/Subcategory,因此我一直试图获取当前URL,该URL匹配传入子类别@ Html.Routelink的所需类别,但没有成功。
如果有一种方法可以将当前URL插入子类RouteLink,它将解决我的困境。如果有办法完成,或者有更好的办法,请帮忙。
谢谢大家!
2016-02-12
bobbyK12