2016-02-05 37 views

回答

3

你也可以。是。

你可以通過只包含這是值類型或string性質使用接受object作爲第三個參數

@Url.Action("Search", "Search", Model) 

你要過載一個簡單的模型?

從內部來看,該方法將根據每個屬性名稱和.ToString()值創建一個Dictionary並將其轉換爲查詢字符串。如果你有很多屬性,或者屬性的值包含長字符串,不僅會導致生成的url變醜,你可能會超出查詢字符串限制並拋出異常。但主要的問題是,它是複雜的對象或集合任何屬性將導致結合失敗,因爲,例如,這是List<string>屬性會產生..?somePropertyName=System.Collections.Generic.List[string]&....

通行證只是模型的ID像現在你這樣做,並獲得模型再次來自您的控制器中的存儲庫。

+0

如果我們有其他參數如int和另一個字符串,並且第三個模型創建匿名對象會起作用嗎? –

+0

@EhsanSajjad,不知道我是否理解了你的評論,但是如果你的意思是你可以做'@ Url.Action(「Search」,「Search」,new {id = 1,Model})'回傳另一個值不是模型的一部分,那麼你不能(模型成爲一個嵌套的對象,並且方法不會遞歸地爲複雜對象生成查詢字符串 - 結果將會是../Search?id = 1&Model = someAssembly.someClassName') –

+0

那麼在這種情況下推薦的方法是什麼,如果我們有這種場景 –

相關問題