我可能会为我的应用程序提供许多部分视图,这些部分视图可以在文件夹结构中进行分组.看来我应该这样做,否则我会看一个包含大量文件的View文件夹.所以我假设我应该有类似的东西:
Views -> Group1 -> PartialView1 PartialView2
HTML.Partial调用会是什么样的?
HTML.Partial("~/Views/Group1/MyPartialView.cshtml",Model)
我的另一个想法是让一个部分视图文件包含条件代码块,但我怀疑这与PartialViews的所有内容相悖.
最后,如果有一个小的部分视图与一个具有多个条件组件的大型部分视图,那么性能是否存在差异?我想我认为一个文件加载到内存和编译代码而不是多个小文件加载.
谢谢.
编辑:更多信息.
我有一个通用控制器,用于呈现报表的不同部分,因此“介绍”部分的所有部分都将使用“简介”部分进行渲染,即“Introduction.Section1”,“Introduction.Section2”.在我的场景中,我不相信我在章节中有共同的部分,所以我可以使用“文件”.想法,但Views文件夹会很大,因此我考虑使用子文件夹.
编辑:谢谢大家.这里有一些很棒的想法.我最后使用了文件夹的想法,因为我在其他地方使用这种方法.但是我确实意识到我需要使用绝对路径,但这不是问题.
解决方法
只要它们在某个地方的Views目录中,它就不重要了.如果你把它放在Views / {controller}或Views / Shared之外的位置,那么你需要完全限定的位置,包括Views和扩展名,所以@Html.Partial(“〜/ Views / Group1 / PartialView1. CSHTML“).
就个人而言,如果您在单个控制器中使用了很多部分内容,我会将它们保留在{controller-name}目录中(带有@IyaTaisho建议的前导下划线).但如果它们在多个控制器中使用,并且您需要对它们进行分组,我会将它们分组在Views / Shared / {groupName}下.
关于一个大的和一个小的部分,我会说与很多小的.可能有理由不时地做一个大的,但总的来说,我认为局部应该尽可能简单.请记住,您可以始终拥有嵌套的部分,因此如果您在许多部分之间具有共享功能或布局,则可以将其分解为父部分和下部的多个子部分.