ASP.net 部分视图相对操作链接



有没有办法拥有相对于当前视图的操作链接。

例如,假设我有一个部分视图,其中包含一个名为 _ArticlesList 的新闻文章的分页列表。我想将其包含在由其相对控制器控制的AdminIndex视图中。 _ArticlesList生成具有routeValues pageNumberpageSize的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);
    }
}

最新更新