2014-09-25 178 views
0

我想使用RenderAction將視圖(A)渲染到視圖(A)上,我可以將模型從A傳遞給B,並使用所需的數據填充AModel上的屬性B:ASP.NET MVC RenderAction最佳實踐

Html.RenderAction("action", "controller", new { model = ViewData.Model }) 

或者只是通過動作和控制器和離開的行動負責獲取數據它需要:

Html.RenderAction("action", "controller」) 

我的問題是,哪種方法被認爲是最佳做法?是否所有數據都應該放在父模型上,還是應該儘可能輕量級地使用部分視圖返回他們自己的特定於其數據需求的模型?兩種方法都可以接受,還是有更好的方法? 感謝您的想法。

+0

你爲什麼不使用RenderPartial方法? – aleha 2014-09-25 09:33:14

+0

'RenderPartial'方法不會命中控制器動作,它通常用於顯示靜態html數據... @ aleha – 2014-09-25 09:36:57

+0

我猜RenderPartial和接受模型參數一樣有效,但它不回答最佳實踐問題。 – jondow 2014-09-25 12:49:02

回答

0

如果您加載與Html.RenderAction("action", "controller")局部視圖,然後在我看來,需要一個獨立的模型爲你的部分觀點,因爲如果你有局部視圖單獨的模型,那麼你可以很容易地使用任何你在其他視圖還想其中部分意見和您的視圖模型將不那麼笨重,並且您爲視圖和部分視圖分別設置了輕量級模型。

+0

我傾向於同意 – jondow 2014-09-25 12:50:51

+0

@ jondow ..實際上你的問題是基於意見的,並且就RenderPartial而言,當你的模型已經被綁定,因爲它沒有綁定新數據的控制器操作時,它是有用的。 – 2014-09-25 13:02:38