我有一個列表視圖,它有一個強類型的ViewModel,它包含我正在使用的實體列表以及一些其他會話類型的東西aruound。將ASP.Net MVC中的ViewModel從View傳遞到不同的視圖使用Get
單擊列表中的項目(Html.ActionLink)轉到Details視圖,我可以輕鬆地傳遞實體標識。但我也想從View中傳遞ViewModel的其餘部分。
我可以使用各種QueryString參數構建ActionLink,然後自定義ModelBinder可以選擇它們併爲我再次提供ViewModel對象。但是,我不喜歡這樣。
我可以得到自定義的ViewModel,當它被張貼回相同的頁面等補水時,但我怎麼能得到ViewModel到一個控制器操作使用GET到另一個視圖,而不使用ModelBinder,並通過簡單地放置ViewModel對象作爲目標Action方法中的一個參數?
是的,我已經試過soemthing這樣的,即通過強將viewmodel位輸入到同一控制器上的GET ActionLink,但使用與參數類型和名稱中的actionlink參數匹配的不同操作。但是,這總是在Action中返回一個null參數,這就是我使用QueryString方法的原因。 我以爲它會被默認的modelbinder綁定。 注意:我假設在MVC 1.0中配置了默認的modelbinder,因爲我看不到如教程 – Redeemed1 2009-09-17 23:07:04
中所示的ComplexModelBinder,但實際上只是找到了defaultModelBinder,因此請忽略最後評論的結尾。試着用默認配置 – Redeemed1 2009-09-17 23:10:51
是的,我可以看到,在進入目標Action時,我有一個實例化的參數ok,但是這些值沒有反映到它中。 – Redeemed1 2009-09-17 23:18:07