2

我有一个通用方法,它基于当前控制器、当前动作和当前可选参数(如果有)生成链接结构。

public static string GetLink(this HtmlHelper helper, RouteData routeData) {
   ...
   foreach(var item in routeData.Values){
      if(!item.key.Equals("controller") && !item.key.Equals("action")) {
         url = helper.ActionLink("text link", "myAction", "myController", 
            new { /* here I want to convert item.Key to anonymous param */ = "2" } );
      }
   } 
}

我放了一条评论/* here I want to convert item.Key to anonymous param */

如何做到这一点?

谢谢

我解决了问题。请使用UrlHelper代替HtmlHelper并生成一个RouteValueDictionary对象来放置匿名可选参数

4

1 回答 1

2

尚未对此进行测试,但请尝试RouteValueDictionary从您的项目和密钥创建一个。

public static string GetLink(this HtmlHelper helper, RouteData routeData)
{
    foreach(var item in routeData.Values)
    {
        if(!item.Key.Equals("controller") && !item.Key.Equals("action"))
        {
            var routeValues = new RouteValueDictionary(item);
            var url = helper.ActionLink("text link", "myAction", "myController", routeValues, null);
        }
    }
}
于 2013-10-10T07:28:03.387 回答