1

我需要能夠將多個參數傳遞給動作。他們最終會被傳遞到第二個動作中,這個動作會知道細節(有多少,他們叫什麼),但我的第一個動作不需要知道這一點,只需要傳遞它們。所以我這樣調用的第一個動作:如何將對象轉換爲Action中的RouteValueDictionary?

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

這創造AP與7的錯誤密鑰/項目對,p.Key[3] = SyncRoot,p.Value[3] = string[1]我又回到了同樣的問題。

回答

0

根據什麼的Action1的簽名,你也許可以做這樣的事情......

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