我正在创建我的第一个MVC.Net应用程序,我发现自己几乎每个页面都包含@using Gideon.Core.Mvc;
。 是否可以将其默认添加到所有网页?
在Asp.Net中,我可以为web.config添加控件的默认内容,希望它也可以为MVC.Net完成。
答案 0 :(得分:26)
您可以在<system.web.webPages.razor>
中的Views/Web.config
部分添加它们。
这是默认值:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.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.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
答案 1 :(得分:9)
在Views/Web.config
中添加它们。将名称空间添加到底部:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Gideon.Core.Mvc" />
</namespaces>
</pages>
</system.web.webPages.razor>
答案 2 :(得分:3)
对于.Net核心用户,如果您创建一个vanilla Web项目,则可以通过添加
来导入默认名称空间_ViewImports.cshtml
页面文件夹中的文件。
并在。
中定义默认名称空间@using test
@namespace test.Pages
答案 3 :(得分:2)
由于谷歌这个问题很高,让我添加一个区域兼容的替代解决方案。
创建一个名为PreApplicationStart
的新类(或您想要的任何其他名称)。
public class PreApplicationStart
{
public static void InitializeApplication()
{
System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport("insert.your.namespace.here");
}
}
在Properties\AssemblyInfo.cs
添加以下行:
[assembly: System.Web.PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
使用此命名空间可在项目的每个视图中使用(包括区域内的视图)。将命名空间添加到web.config
有这个缺陷,如果您使用区域,则最终必须将命名空间添加到每个区域中的每个web.config
文件中。