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

标签 c# asp.net-mvc-4

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

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" } );
      }
   } 
}

我在那里添加了一条注释 /* 这里我想将 item.Key 转换为匿名参数 */

如何实现这一目标?

谢谢

我解决了问题。请使用 UrlHelper 而不是 HtmlHelper 并生成 RouteValueDictionary 对象来放置匿名可选参数

最佳答案

尚未对此进行测试,但尝试从您的项目和 key 创建 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);
        }
    }
}

关于c# - 将字符串转换为匿名参数,以从 ActionLink 方法发送到对象 RouteValues (MVC4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288902/

相关文章:

javascript - 为多个操作创建 ASCX 控件

javascript - 检测浏览器是否使用 GPU 加速图形进行渲染

c# - 这个短路的 if 语句有什么问题?

c# - 使用资源中的变量进行字符串插值

c# - 网页访问问题

javascript - 有没有办法在 MVC 中的 View 上使用 ajax 调用来使用新信息刷新页面?

C# LINQ 在不区分大小写的查询中使用 xml

c# - 方法声明中参数名前的 '@' char是什么意思?

asp.net-mvc-4 - Telerik MVC 索引超出范围

asp.net-mvc-4 - 如何在浏览器窗口调整大小时使用边框布局调整 ext.net 容器的大小