有没有办法拥有相对于当前视图的操作链接。
例如,假设我有一个部分视图,其中包含一个名为 _ArticlesList
的新闻文章的分页列表。我想将其包含在由其相对控制器控制的Admin
和Index
视图中。 _ArticlesList
生成具有routeValues
pageNumber
和pageSize
的URL,但您必须对控制器进行硬编码,不是吗?
我想做的只是覆盖routeValue
对象中的属性?
编辑:我想我可以使用HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()
但这看起来很糟糕
如果你想上传 For EX. 索引文件,然后写下以下内容在你的 cshtml 中实现。
<div>
@Html.Partial("_ArticleList", Model)
</div>
你可以把它放在任何div 标签中。
我用它来实现我想要的
public static class UrlHelperExtensions
{
public static string RelativeAction(this UrlHelper url, object routeValues)
{
var routeDataValues = url.RequestContext.RouteData.Values;
var queryString = url.RequestContext.HttpContext.Request.QueryString;
foreach (string key in queryString.Keys)
{
routeDataValues[key] = queryString[key];
}
// Allow routeValue object to take precedence over queryString
foreach (var prop in new RouteValueDictionary(routeValues))
{
routeDataValues[prop.Key] = prop.Value;
}
return url.RouteUrl(routeDataValues);
}
}