Sam*_*lly 7 razor asp.net-mvc-3
我可能会为我的应用程序提供许多部分视图,这些部分视图可以在文件夹结构中进行分组.看来我应该这样做,否则我会看一个包含大量文件的View文件夹.所以我假设我应该有类似的东西:
Views ->
Group1 ->
PartialView1
PartialView2
Run Code Online (Sandbox Code Playgroud)
HTML.Partial调用会是什么样的?
HTML.Partial("~/Views/Group1/MyPartialView.cshtml",Model)
Run Code Online (Sandbox Code Playgroud)
我的另一个想法是让一个部分视图文件包含条件代码块,但我怀疑这与PartialViews的所有内容相悖.
最后,如果有一个小的部分视图与一个具有多个条件组件的大型部分视图,那么性能是否存在差异?我想我认为一个文件加载到内存和编译代码而不是多个小文件加载.
谢谢.
编辑:更多信息.
我有一个通用控制器,用于呈现报表的不同部分,因此"介绍"部分的所有部分都将使用"简介"部分进行渲染,即"Introduction.Section1","Introduction.Section2".在我的场景中,我不相信我在章节中有共同的部分,所以我可以使用"文件".想法,但Views文件夹会很大,因此我考虑使用子文件夹.
编辑:谢谢大家.这里有一些很棒的想法.我最后使用了文件夹的想法,因为我在其他地方使用这种方法.但是我确实意识到我需要使用绝对路径,但这不是问题.
只要它们在Views目录中的某个位置,就没有关系。如果将其放在Views/{controller}或以外的其他位置Views/Shared,则需要完全限定的位置,包括Views和扩展名,因此@Html.Partial("~/Views/Group1/PartialView1.cshtml")。
就个人而言,如果您在单个控制器中使用了很多局部变量,我会将它们保留在{controller-name}目录中(@IyaTaisho建议使用带下划线的下划线)。但是,如果它们被多个控制器使用,并且您需要对其进行分组,则将它们分组在之下Views/Shared/{groupName}。
关于一个大部件与许多小部件,我会说很多小部件。也许有理由不时地做一个大的事情,但是总的来说,我认为部分工作应该尽可能简单。请记住,您始终可以嵌套嵌套的部分,因此,如果您在许多部分之间具有共享的功能或布局,则可以将其分为父部分和下面的许多子部分。
您可以使用父子文件命名约定,如:
header.html
header.login.html
header.searchbar.html
Run Code Online (Sandbox Code Playgroud)
你甚至可以更进一步:
contact.helpdesk.html
contact.office.html
Run Code Online (Sandbox Code Playgroud)
重复使用partials的频率远低于unique partials,所以你可以使用一个约定来重复使用partials,例如:
global.partial1.html
global.partial2.html
Run Code Online (Sandbox Code Playgroud)
限制是一个大文件目录.
Benifits易于脱脂,易于分类.