通过routename和routevalues返回URL

时间:2010-10-11 09:42:24

标签: asp.net-mvc asp.net-routing

我正在尝试以编程方式生成routename和routevalues的链接。我将路由和值存储在数据库中。

如何调整此帮助程序才能使其正常工作?

public static string GenerateLink(this HtmlHelper helper, string routeName, Dictionary<string, string> parameters)
{
     // ??

    RouteValueDictionary rd = new RouteValueDictionary();

     foreach (var item in parameters)
     {
         rd.Add(item.Key, item.Value);
     }

     // string url = ??

    return url;
}

使用它像:

<%= Html.GenerateLink(Model.SomeLinkName, Model.RouteName, ..?) %>

/ M

1 个答案:

答案 0 :(得分:1)

实际上这种方法已经存在。

Html.RouteLink(string LinkText, string routeName, RoutevalueDictionary routeValues)

您唯一需要做的就是将您的IDictionary转换为RouteValueDictionary,这也很简单,因为RVD的构造函数可以使用IDictionary,这样可以避免在示例中执行foreach循环。

所以你最需要的就是

Html.RouteLink(string LinkText, string routeName, new RoutevalueDictionary(parameters) )