Razor中_ViewImports.cshtml文件的@using与@namespace指令作用是什么?
在Razor的_ViewImports.cshtml中,@using和@namespace指令的作用解析
嘿,我来给你掰扯清楚这两个指令的作用,结合你给出的示例代码会更直观:
@using 指令
这个和你在普通C#代码文件里写的using引用逻辑完全一致——它的作用是把指定的命名空间全局引入到所有继承该_ViewImports.cshtml的视图文件中。这样你在视图里使用该命名空间下的类、方法、扩展方法等时,就不用每次都写完整的命名空间前缀了,能省不少事儿。
比如你示例里的@using TagHelpersBuiltIn,就是把TagHelpersBuiltIn这个命名空间全局导入,之后在相关视图里用到这个命名空间下的类型,直接写类名就行,不用再写TagHelpersBuiltIn.XXX这种完整路径。
@namespace 指令
这个指令是用来设置所有继承该_ViewImports的视图文件所生成的后台C#类的根命名空间。说白了,就是给这些视图对应的后台代码统一分配一个命名空间,方便你在项目的其他C#代码里引用视图相关的类(比如视图模型绑定相关的类)。
比如示例里的@namespace TagHelpersBuiltIn.Pages,意味着Pages文件夹下所有继承这个_ViewImports的视图,它们编译后生成的C#类都会归到TagHelpersBuiltIn.Pages这个命名空间下。
附上你提供的示例代码块:
@using TagHelpersBuiltIn @namespace TagHelpersBuiltIn.Pages @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
内容的提问来源于stack exchange,提问作者wonderful world
相关产品推荐
相关产品推荐

