2015-01-21 45 views
0

我目前正在研究一个ASP.Net MVC项目,并使用剃刀视图。 我有一个控制器的操作;说行动A有自己的剃刀视角;说视图A.剃刀查看孤独和内部另一个剃刀视图,什么是最佳实践?

另外,我有另一个控制器的行动;行动B,并有自己的剃刀视图;查看B.

现在,我想在剃刀视图B中有剃刀视图A;而不是复制视图B中的所有视图A内容以避免重复代码。

你有什么建议?

任何想法,将不胜感激。

+1

看部分视图(使用'@ Html.Partial()'或'@ Html.Action()')来重复跨越的内容多个视图。 – 2015-01-21 11:31:43

回答

2

B.cshtml呼叫

@Html.Partial("A.cshtml", modelForA) 
+0

感谢詹姆斯的回复,但我有模型A的视图A,和另一个模型B其中包括模型A.共享视图的模型将会是什么? – MarwaAhmad 2015-01-21 11:43:08

+0

@MarwaAhmad'modelB.modelA' – James 2015-01-21 11:59:19

+0

James,那么共享视图模型将是:** @ modelA Model ** **或** @ modelB ** ** PS:如果我通过ModelA,那么当我将数据发布到动作B那么模型B的数据将不存在!我应该发送整个父模型,即模型B.如果我让共享的视图是ModelB,那么ActionA应该将额外的数据发送到该共享视图,而不仅仅是ModelA。找到了我? – MarwaAhmad 2015-01-21 13:56:06

1

如果没有模型,然后通过内部B.cshtml呼叫在使用(不需要.cshtml)

@Html.Partial("A") 

与模型

@Html.Partial("A", @Model.SubModel) 
+0

感谢Manoj的回复,但我有两种不同的型号。 – MarwaAhmad 2015-01-21 11:42:24

+0

你从哪里得到这些模型?父母模型?然后只传递整个父模型 – Moji 2015-01-21 11:54:40

+0

是的Manoj,则共享视图模式将是: @模型MODELA 或 @模型ModelB PS: 如果我传递MODELA然后当我的数据发布到动作乙那么模型B的数据将不存在!我应该发送整个父母,即Model B. 如果我让共享的视图是ModelB,那么ActionA应该不仅向ModelA发送额外的数据到共享视图。 找到了我? – MarwaAhmad 2015-01-21 13:51:15