我正在使用MVC 6创建我的第一个MVC应用程序。 例如,在Register.cshtml(默认情况下创建)中,模型添加如下:
@model RegisterViewModel
但是当我想添加我创建的模型时,我必须这样做:
@model ProjectName.Models.HomeModels.MyModel
注意: 我知道如何导入命名空间,我想知道的是,在默认视图中,没有命名空间导入和添加模型,但对于我自己创建的模型,他们没有。
答案 0 :(得分:1)
我想你问为什么你必须为你的类添加使用,但是其他Microsoft类等在视图中自动提供而不需要使用?你还没有看到一些黑魔法。好消息是你可以做同样的事情。如果展开项目中的Views
目录,则应在其中看到Web.config文件。这与用于项目的主Web.config不同;这个只适用于Views
目录中的内容。如果您打开此文件,则会在内部看到如下部分:
<system.web.webPages.razor>
<host factoryType="..." />
<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" />
...
</namespaces>
</pages>
</system.web.webPages.razor>
看哪:失踪的使用。如果您还没猜到,可以在此处添加自己的命名空间。您在此处添加的任何内容都会自动为该命名空间的视图添加using语句。
<强>更新强>
糟糕。刚注意到核心标签。我认为这不再适用于核心,但我会留下我的答案以防万一有人需要MVC方法。在ASP.NET Core中,您将在_ViewImports.cshtml
目录中创建一个Views
文件,并在那里添加您的using语句:
<强> _ViewImports.cshtml 强>
@using MyProject.Models
答案 1 :(得分:0)
您需要使用@using命令指定命名空间。执行此操作意味着您在视图上使用此命名空间,并且可以从视图中访问所有方法,但要注意其他命名空间中的重复名称。现在,您可以将模型添加到视图中。 但@using命令只能用于命名空间。