2014-09-25 133 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