在_ViewImports.cshtml中导入名称空间

时间:2016-12-20 16:10:58

标签: c# razor asp.net-core asp.net-core-mvc

我正在研究.Net项目,并且我正在使用 _ViewImports.cshtml 文件导入我拥有的许多 ViewModels 的命名空间。与official documentation中描述的类似。 有没有办法只导入父命名空间,例如@using WebApplication1.ViewModels并且可以在剃刀视图中访问它的视图模型:

  • @model Home.HomepageViewModel
  • @model About.AboutViewModel

到目前为止,我没有设法做到这一点,我的_ViewImports.cshtml文件中有一个很长的命名空间列表(不要太在意,但如果可能的话,只需要导入例如WebApplication1就可以了。 ViewModels并可以访问它的视图模型。)

TNX!

1 个答案:

答案 0 :(得分:3)

Razor并不聪明地理解那种" partial"模型的命名空间 如果您在ViewImports中定义@using App.ViewModels,并且您的实际视图模型位于App.ViewModels.Home.HomeVM,则您无法使用@model Home.HomeVM(省略App.ViewModels),Razor无法弄清楚它是App.ViewModels命名空间(前缀模型命名空间)的一部分。

我猜这是因为Razor不知道要使用什么前缀,你可以在ViewImports中拥有50个@usings,而Razor必须经历每一个,然后如果你如果不同的名称空间具有相同的类名,则无法知道要使用哪个...

您必须在_ViewImports文件中具有完整路径,或在视图中具有完整路径。