24-Razor的共享指令

视图中可以使用Razor指令。这些指令可以实现很多东西。

比如导入命名空间,执行依赖注入等

许多视图的共享指令可以在公共的_ViewImports.cshtml文件中指定。

_ViewImports文件相当于一个视图的专门用来进行引入的文件。

它支持下面的指令:

@addTagHelper

@removeTagHelper

@tagHelperPrefix

@using

@model

@inherits

@inject

_ViewImports.cshtml文件不支持其他的Razor特性 比如函数 和section部分等。

它也是在Views文件夹下面

@using FirstCoreMVC
@using FirstCoreMVC.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpersCode language: CSS (css)

不过ViewImports.cshtml可以存放在任意的文件夹中的。只不过它只能应用于它所在的文件夹以及它的子文件夹中的视图。不过根的ViewImports.cshtml可能会被子的_ViewImports.cshtml覆盖

另外 一些指令是可以被覆盖的。比如@model指令 但是有些指令是会累加的。比如@addTagHelper

如果视图中能被多个ViewImports.cshtml”照顾”到,则ViewImports.cshtml中的指令组合行为如下

1 @addTagHelper,@removeTagHelper:按顺序全部运行。

2 @tagHelperPrefix 与视图最近的一个覆盖任何其他的tagHelperPrefix

3 @model 与视图最近的将覆盖其他的任何的

4 @inherits与视图最近的将覆盖其他的任何的

5 @using 包含所有的using 重复的会忽略

6 inject 对于每个属性,与视图最近的一个属性将覆盖具有相同属性名称的任何其他属性。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注