我使用辅助方法在视图中创建部分:
@helper CreateFacetSection(WebViewPage page, string sectionName,
List<FacetValue> model)
{
var showMore = int.Parse(WebConfigurationManager.AppSettings["ShowMore"]);
<section id="@sectionName">
<h4>@sectionName</h4>
<ul>
@for (int i = 0; i < model.Count(); i++)
{
if (i >= showMore)
{
@:<li class="hide">
}
else
{
@:<li>
}
FacetValue fv = model.ElementAt(i);
@page.Html.ActionLinkWithQueryString(fv.Range, "Search",
new { sectionName = fv.Range }, null);
@:(@fv.Count)
@:</li >
}
</ul>
@if(model.Count > showMore)
{
<a href="#" class="show-more" data-section="@sectionName">
@Localization.ShowMore ▼</a>
}
</section>
}
现在假设我@Html.ActionLink
在上面的帮助器中使用了这个自定义帮助器:
@Html.ActionLinkWithQueryString(fv.Range, "Search", new { sectionName = fv.Range });
有没有办法在路由值集合中传递动态命名参数?在上面的例子中,我想要一个sectionName
动态命名的参数,这样我就可以在 action 方法中获得正确的值。它会根据sectionName
我当前作为参数传递给辅助方法的不同而有所不同......
现在我得到一个这样的链接:
http://leniel-pc:8083/realty/search?sectionName=Volta%20Redonda
它应该是:
http://leniel-pc:8083/realty/search?City=Volta%20Redonda
City
或者我作为参数传递的任何内容,而不是sectionName
因为“City”是sectionName
我传递给辅助方法的参数的值。
我可以做一个开关,sectionName
但我只是想知道是否有一种更简洁的方法来实现这一点。