将当前 URL 插入 @Html.RouteLink 参数以构建 link
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 for controller= "something" 它将显示 http://localhost/something/Subcategory
所以我一直在尝试获取与传递到子类别@Html.Routelink 的所需类别相匹配的当前 URL,但没有成功。
如果有办法将当前 URL 插入到子类别 RouteLink 中,它将解决我的问题。如果有办法完成,或者更好的方法,请帮助。
谢谢大家!
RouteLink
和 ActionLink
使用 RouteTable
构建传出 URL,因此您需要修改 RouteTable
来自定义 URL,而不是 RouteLink
配置。
您可以通过多种方式做到这一点,但创建从数据库数据驱动的 URL 的最灵活方式是 。
我可能以错误的方式解决这个问题,因为我是 .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 for controller= "something" 它将显示 http://localhost/something/Subcategory
所以我一直在尝试获取与传递到子类别@Html.Routelink 的所需类别相匹配的当前 URL,但没有成功。
如果有办法将当前 URL 插入到子类别 RouteLink 中,它将解决我的问题。如果有办法完成,或者更好的方法,请帮助。
谢谢大家!
RouteLink
和 ActionLink
使用 RouteTable
构建传出 URL,因此您需要修改 RouteTable
来自定义 URL,而不是 RouteLink
配置。
您可以通过多种方式做到这一点,但创建从数据库数据驱动的 URL 的最灵活方式是