【问题标题】:How do I convert an object to a RouteValueDictionary inside an Action?如何在 Action 中将对象转换为 RouteValueDictionary?
【发布时间】:2012-01-31 20:15:24
【问题描述】:

如果需要,我需要能够将多个参数传递给操作。它们最终将被传递到第二个动作中,该动作将知道细节(有多少,它们被称为什么),但我的第一个动作不需要知道这一点,它只需要传递它们。所以我这样称呼第一个动作:

RedirectToAction("Action1", "Controller1", new {
                     dcontroller = "Controller2",
                     daction = "Action2",
                     dparameters = new { tabSelected = "1" }
                 })

dparameters 被传递,但是当我进入需要使用参数的操作时,我无法获得它们。对象如下所示:

... dparameters [string[1]}
 [0]"{ tabSelected = 1 }"

但是如果我尝试dparameters[0] 我会得到错误

Cannot apply indexing with [] to an expression of type 'object'.

我也试过

RouteValueDictionary p = new RouteValueDictionary(dparameters);

它创建了一个包含 7 个密钥/项目对的 p,p.Key[3] = SyncRootp.Value[3] = string[1],我又回到了同样的问题。

【问题讨论】:

    标签: asp.net-mvc model-view-controller object action asp.net-mvc-routing


    【解决方案1】:

    根据Action1 的签名,您可能可以这样做...

    RedirectToAction("Action1", "Controller1", 
        new RouteValueDictionary {
            { "dcontroller", "Controller2" },
            { "daction", "Action2" },
            { "dparameters.tabSelected", "1" }
        }
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多