在我的ASP.NET MVC 5应用程序中,我将所有模型都放在命名空间MyApp.Models
中。要在我的视图中使用模型,例如要告诉视图他应该使用@model UserLoginModel
的模型,我必须使用using MyApp.Models
导入名称空间。
这不是什么大问题,但我希望它能在我的每个视图中自动包含此命名空间,以避免在每个视图中进行冗余导入。我发现我的views-folder中的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.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.Optimization"/>
<add namespace="MyApp" />
<add namespace="MyApp.Models"/>
</namespaces>
</pages>
但它不起作用。所有这些都是由Visual Studio预先生成的。我只为我的模型添加了<add namespace="MyApp.Models"/>
。
On SO我发现similar question和我一样{但是}提问者只是说我应该使用Views/web.config
文件,因为我尝试了,而问题回答了他的问题ASP.NET MVC 6.但我正在使用MVC 5.1.2并且无法使其工作,他在视图中没有包含@using
的命名空间时找不到视图。
答案 0 :(得分:-1)
您可以使用新的_ViewImports.cshtml全局添加命名空间。内容的一个例子是:
@using Microsoft.AspNet.Identity
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"