将字符串转换为匿名参数,以便从ActionLink方法(MVC4)发送到对象routeValues

时间:2013-10-10 06:48:55

标签: c# asp.net-mvc-4

我有一个通用方法,可以根据当前控制器,当前操作和当前可选参数(如果有)生成链接结构。

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对象以放置匿名可选参数

1 个答案:

答案 0 :(得分: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);
        }
    }
}