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

时间:2015-02-25 12:40:27

标签: asp.net-core asp.net-core-mvc

我正在使用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个文件。

3 个答案:

答案 0 :(得分:30)

对于&lt; = 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

答案 1 :(得分:8)

将您的命名空间添加到'find the current right alignment position Dim rightAlign As Integer = Label1.Left + Label1.Width 'set the text (assumes AutoSize is set to True) Label1.Text = value 'adjust position so the right hand point is in the same position as before Label1.Left = rightAlign - Label1.Width 文件(位于Views文件夹下)。

示例文件:

_ViewImports.cshtml

答案 2 :(得分:0)

我在测试版7上,我不得不使用

@using System.Security.Principal
@using System.Security.Claims

@Context.User.GetUserId()