将命名空间添加到ASP.NET MVC 6中的所有视图

Dyl*_*rry 22 asp.net-core-mvc asp.net-core

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

我添加了对MyProject.WebUI.Helpers命名空间的访问权限.

在ASP.NET 5中,因此在MVC 6中,该web.config文件已被废除,所以我不知道该如何继续这样做.我试过寻找答案,但我能找到的只是在当前版本的ASP.NET而不是v5中如何做到这一点.

有任何想法吗?

编辑:说明web.config我将使用哪个文件.

N. *_*len 30

对于<= beta3位(您最有可能使用的位),您应该@using在_ViewStart.cshtml中添加一个语句.又名:

_ViewStart.cshtml: @using MyProject.WebUI.Helpers

如果您没有_ViewStart.cshtml,则可以创建一个,并确保它位于您希望它影响的视图的相同路径或父路径中.

对于beta4位,此功能已移至名为_GlobalImport.cshtml的新文件; _ViewStart.cshtml已转换回其原始功能(仅运行代码,而不是继承指令).因此:

_GlobalImport.cshtml: @using MyProject.WebUI.Helpers

对于beta5位,_GlobalImport.cshtml被重命名为_ViewImports.cshtml

  • 在Beta5中是`_ViewImports.cshtml`https://github.com/aspnet/Announcements/issues/27 (2认同)

gdo*_*ica 9

将名称空间添加到_ViewImports.cshtml文件中(它位于Views文件夹下).

示例文件:

@using Microsoft.AspNetCore.Identity
@using Jifiti.Registry.Web.Models.AccountViewModels
@using Jifiti.Registry.Web.Models.ManageViewModels

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Run Code Online (Sandbox Code Playgroud)