将命名空间添加到 ASP.NET MVC 6 中的所有视图
Add namespace to all views in ASP.NET MVC 6
我正在使用 MVC 6,并希望能够从我所有的 Razor 视图全局访问特定的命名空间。在 MVC 5 中,这相当简单;我只需将以下代码添加到我的 ~/views/web.config
文件中:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="MyProject.WebUI" />
<add namespace="MyProject.WebUI.Helpers" /><!-- Added this line -->
</namespaces>
</pages>
</system.web.webPages.razor>
我在其中添加了对 MyProject.WebUI.Helpers
命名空间的访问权限。
在 ASP.NET 5 中,因此在 MVC 6 中,web.config
文件已被删除,所以我不确定如何继续这样做。我试过寻找答案,但我能找到的只是如何在当前版本的 ASP.NET 而不是 v5.
中做到这一点
有什么想法吗?
编辑: 阐明了我会使用哪个 web.config
文件。
对于 <= beta3 位(您最有可能使用的位),您应该在 _ViewStart.cshtml 中添加一个 @using
语句。又名:
_ViewStart.cshtml: @using MyProject.WebUI.Helpers
如果您没有 _ViewStart.cshtml,您可以创建一个,只需确保它位于您希望它影响的视图的相同路径或父路径中。
对于 beta4 位,此功能已移至名为 _GlobalImport.cshtml 的新文件; _ViewStart.cshtml 已转换回其原始功能(只是 运行 代码,而不是继承指令)。因此:
_GlobalImport.cshtml: @using MyProject.WebUI.Helpers
对于 beta5 位,_GlobalImport.cshtml 已重命名为 _ViewImports.cshtml
我正在使用 beta 7,我不得不使用
@using System.Security.Principal
@using System.Security.Claims
@Context.User.GetUserId()
将您的命名空间添加到_ViewImports.cshtml
文件(位于 Views 文件夹下)。
示例文件:
@using Microsoft.AspNetCore.Identity
@using Jifiti.Registry.Web.Models.AccountViewModels
@using Jifiti.Registry.Web.Models.ManageViewModels
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
我正在使用 MVC 6,并希望能够从我所有的 Razor 视图全局访问特定的命名空间。在 MVC 5 中,这相当简单;我只需将以下代码添加到我的 ~/views/web.config
文件中:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="MyProject.WebUI" />
<add namespace="MyProject.WebUI.Helpers" /><!-- Added this line -->
</namespaces>
</pages>
</system.web.webPages.razor>
我在其中添加了对 MyProject.WebUI.Helpers
命名空间的访问权限。
在 ASP.NET 5 中,因此在 MVC 6 中,web.config
文件已被删除,所以我不确定如何继续这样做。我试过寻找答案,但我能找到的只是如何在当前版本的 ASP.NET 而不是 v5.
有什么想法吗?
编辑: 阐明了我会使用哪个 web.config
文件。
对于 <= beta3 位(您最有可能使用的位),您应该在 _ViewStart.cshtml 中添加一个 @using
语句。又名:
_ViewStart.cshtml: @using MyProject.WebUI.Helpers
如果您没有 _ViewStart.cshtml,您可以创建一个,只需确保它位于您希望它影响的视图的相同路径或父路径中。
对于 beta4 位,此功能已移至名为 _GlobalImport.cshtml 的新文件; _ViewStart.cshtml 已转换回其原始功能(只是 运行 代码,而不是继承指令)。因此:
_GlobalImport.cshtml: @using MyProject.WebUI.Helpers
对于 beta5 位,_GlobalImport.cshtml 已重命名为 _ViewImports.cshtml
我正在使用 beta 7,我不得不使用
@using System.Security.Principal
@using System.Security.Claims
@Context.User.GetUserId()
将您的命名空间添加到_ViewImports.cshtml
文件(位于 Views 文件夹下)。
示例文件:
@using Microsoft.AspNetCore.Identity
@using Jifiti.Registry.Web.Models.AccountViewModels
@using Jifiti.Registry.Web.Models.ManageViewModels
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers