ViewModel:
是model和view之间的桥量,它会包含View所需的所有数据;我理解ViewModel是为了满足View的数据项外加的一个类,作用其实就是集合一下数据项。
布局视图:
使用布局视图,让所有视图保持一致的外观变得更加容易,因为如果有任何更改,则只有一个要修改的布局视图文件,然后更改后将立即反映在整个应用程序的所有View中,这样易于维护而且还提升效率。
在View中用 @{Layout="xxx/xx/xxx.cshtml";} 来指定该View使用哪个文件作为布局视图。
在布局视图中用 @RenderSection("Scripts",required:false) 来标记节点,例始:Scripts是节点名,required的真假表示该节点是否为必填项。在view中以 @section Scripts 来使用节点。
_ViewStart.cshtml:
这是ASP.NET Core MVC中的一个特殊文件,该文件中的代码(公共代码)在调用单个视图中的代码之前执行。
里面一般会写 @{Layout="xx/xxx/xx.cshtml";}
我们用它来设置其所在文件夹以及下级文件夹中的所有View的布局视图文件用谁。
这货是支持分层的。也就是父文件夹里有一个,子文件夹里也有一个的话,父文件夹里的View按父文件夹里的_ViewStart.cshtml设置走,子文件夹里的View按子文件夹里的_ViewStart.cshtml设置走。
另外,哪个View不想用_ViewStart.cshtml指定的布局视图文件的话,只需在自己首部显示指定这个参数 @{Layout=null;}
_ViewStart.cshtml中可以写一些判断,如:判断下登录用户角色是否为Admin,来选择对应的布局视图。
_ViewImports.cshtml:
这是ASP.NET Core MVC中的一个特殊文件,可以用于@using 引入命名空间,等一系列前置操作。如:
●@using ● @addTagHelper ● @removeTagHelper ● @tagHelperPrefix ● @model
● @inherits ● @inject
这货也是支持分层的。