Asp.net mvc 按routename和RouteValue返回url

Asp.net mvc 按routename和RouteValue返回url,asp.net-mvc,asp.net-routing,Asp.net Mvc,Asp.net Routing,我试图通过编程方式通过routename和RouteValue生成一个链接。我将路由和值存储在数据库中 如何调整此辅助对象以使其工作 public static string GenerateLink(this HtmlHelper helper, string routeName, Dictionary<string, string> parameters) { // ?? RouteValueDictionary rd = new RouteValueDict

我试图通过编程方式通过routename和RouteValue生成一个链接。我将路由和值存储在数据库中

如何调整此辅助对象以使其工作

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;
}
publicstaticstringgenerateLink(此HtmlHelper帮助程序、字符串路由名称、字典参数)
{
// ??
RouteValueDictionary rd=新的RouteValueDictionary();
foreach(参数中的变量项)
{
rd.Add(item.Key,item.Value);
}
//字符串url=??
返回url;
}
要像这样使用它:

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


/实际上,这种方法已经存在于您的应用程序中

Html.RouteLink(字符串LinkText、字符串routeName、RoutevalueDictionary routeValues)

您需要做的唯一一件事是将IDictionary转换为RouteValueDictionary,这同样非常简单,因为RVD的构造函数可以使用IDictionary,从而避免您执行示例中的foreach循环

所以最后你需要的是


Html.RouteLink(字符串LinkText、字符串routeName、新RoutevalueDictionary(参数))

如果我在Model.Routeparameters(.ParameterKey和.ParameterValue)中获得了值,我应该如何分配这些值?如果Model.Routeparameters属性已经是RoutevalueDictionary,您可以将其传递给Html.RouteLink:Html.RouteLink(“链接文本”、“路由名称”、Model.RouteParameters)