ASP.net局部视图相对动作链接

时间:2016-06-08 09:52:08

标签: asp.net asp.net-mvc

是否有办法获得与当前视图相关的动作链接。

例如,假设我有一个部分视图,其中包含一个名为_ArticlesList的新闻文章的分页列表。我希望将其包含在AdminIndex视图中,这些视图由其相关控制器控制。 _ArticlesList会生成包含routeValues pageNumberpageSize的网址,但您必须对控制器进行硬编码,不是吗?

我认为我想要做的只是覆盖routeValue对象中的属性?

编辑: 我想我可以使用HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString() 但这看起来很糟糕

2 个答案:

答案 0 :(得分:1)

如果您想在For EX中上传。索引文件然后写下来在你的cshtml中实现。

<div>
    @Html.Partial("_ArticleList", Model)
</div>

你可以将它放在任何div标签中。

答案 1 :(得分:0)

我用它来达到我想要的目的

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);
    }
}