ASP.NET Core MVC中视图的知识和ASP.NET MVC有很多相似之处,学习难度较低。以下内容主要体现了编程中模块化的思想,模块化才应是我们关注的重点。
布局用于提供各个页面所需的公共部分,如:菜单、页头、页尾等。在ASP.NET Core中默认的布局文件是位于/Views/Shared文件夹下的_Layout.cshtml
文件:
我们通常在_Layout.cshtml
中引入公共资源,如:
<link href="~/css/reset.css" rel="stylesheet" /><link href="~/css/index.css" rel="stylesheet" /><script src="~/js/common/net/ajaxHandler.js">script><environment names="Development"><script src="~/js/lib/vue/vue.js">script>environment><environment names="Production"><script src="~/js/lib/vue/vue.min.js">script>environment>
指定布局文件
可以在Razor视图(即,cshtml文件)中使用Layout
属性来指定使用哪个布局文件:
ASP.NET Core MVC搜索布局文件的方式与局部视图一样,下文中会详细说明。默认情况下,在布局文件中必须调用RenderBody
方法。还可以使用RenderSection方法来引入section
。
View Import
可以在_ViewImport.cshtm
文件中添加命名空间或者Tag Helper以供其它视图中使用,如:
@using Microsoft.AspNetCore.Identity
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
在_ViewImport.cshtm
文件可以使用以下指令:
@addTagHelper
@removeTagHelper
@tagHelperPrefix
@using
@model
@inherits
@inject
_ViewImport.cshtm
文件不支持Razor文件的其它特性,如:function、section等。对于多个_ViewImports.cshtml
的情况,指令运行结果遵循如下规则:
@addTagHelper
,@removeTagHelper
: 按照先后顺序执行