按路由名称和路由值返回 url

发布于 2024-09-26 22:05:59 字数 554 浏览 2 评论 0原文

我正在尝试通过路由名称和路由值以编程方式生成链接。我将路线和值存储在数据库中。

我该如何调整这个助手才能使其工作?

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盛夏已如深秋| 2024-10-03 22:05:59

其实这个方法已经为你存在了。

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文