won*_*rld 3 asp.net asp.net-mvc razor-pages
Razor _ViewImports.cshtml 文件中的指令@using和@namespace指令有什么作用?
@using TagHelpersBuiltIn
@namespace TagHelpersBuiltIn.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
什么是 _ViewImports.cshtml`?
_ViewImports.cshtml用于声明驻留在包含_ViewImports.cshtml文件的文件夹中的视图的所有导入。它还用于为驻留在该文件夹中的所有视图声明命名空间,此外,还用于声明应可用于驻留在该文件夹中的视图的任何标记助手。
@命名空间
文件中的@namespace指令_ViewImports.cshtml用于声明 Razor 视图/页面的根命名空间。_ViewImports.cshtml大多数项目的默认生成文件将具有@namespace MyProjectName.Pages. 您的_ViewImports.cshtml文件中应该只有这些声明之一,如果有多个,则最后一个将“获胜”,其余的将无效。该@namespace指令类似于为 C# 类文件声明命名空间。这只是允许为文件夹中的所有视图声明命名空间,而不必在每个视图中声明命名空间。
@使用
@using用于为文件夹内的所有视图添加导入。例如:如果您的_ViewImports.cshtml文件包含@using Microsoft.AspNetCore.Identity,则该文件夹下的任何视图都可以访问Microsoft.AspNetCore.Identity命名空间的成员,而无需通过@using指令显式导入它们。
@addTagHelper
@addTagHelper用于声明应可用于包含_ViewImports.cshtml文件的文件夹中的视图的所有标签助手。默认项目模板通常@addTagHelper在根_ViewImports.cshtml文件中包含以下指令:@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers.
附加信息
需要注意的是_ViewImports.cshtml,Views或Pages根目录下的文件也适用于Views或Pages文件夹的所有子目录。您还可以_ViewImports.cshtml在子目录中添加一个文件,以添加仅应用于该子目录中的视图的其他 using 语句。还值得注意的是,至少对于 Razor Pages 而言,即使根_ViewImports.cshtml文件将命名空间声明为@namespace MyProject.Pages,其中的视图MyProject\Pages\ASubDirectory也会自动获得命名空间,MyProject.Pages.ASubDirectory而无需添加另一个_ViewImports.cshtml文件来声明 中的命名空间MyProject\Pages\ASubDirectory。
归因
这个答案最初是对 Coding Yoshi 的答案的编辑。因此,部分答案基于 Coding Yoshi 的答案。
| 归档时间: |
|
| 查看次数: |
3525 次 |
| 最近记录: |