按路由名称和路由值返回 url
我正在尝试通过路由名称和路由值以编程方式生成链接。我将路线和值存储在数据库中。
我该如何调整这个助手才能使其工作?
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
I'm trying to programatically generate a link by routename and routevalues. I store the routes and values in the database.
How can I adjust this helper in order to make it work?
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;
}
to use it like:
<%= Html.GenerateLink(Model.SomeLinkName, Model.RouteName, ..?) %>
/M
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
其实这个方法已经为你存在了。
Html.RouteLink(string LinkText, string routeName, RoutevalueDictionary routeValues)
您唯一需要做的就是将 IDictionary 转换为 RouteValueDictionary,这又非常简单,因为 RVD 的构造函数可以采用 IDictionary使您免于在示例中执行 foreach 循环。
所以最后你需要的是
Html.RouteLink(string LinkText, string routeName, new RoutevalueDictionary(parameters) )
Actually this method already exists for you.
Html.RouteLink(string LinkText, string routeName, RoutevalueDictionary routeValues)
The only thing you need to do is turn your IDictionary into a RouteValueDictionary which again is quite simple as the constructor for a RVD can take an IDictionary which saves you from doing the foreach loop in your example.
So finally all you need is
Html.RouteLink(string LinkText, string routeName, new RoutevalueDictionary(parameters) )