将创建的模型添加到视图中需要完整的名称空间
本文关键字:空间 模型 创建 添加 视图 | 更新日期: 2023-09-27 18:18:31
我正在使用MVC 6创建我的第一个MVC应用程序。而例如在Register。CSHTML(默认创建)模型添加方式如下:
@model RegisterViewModel
但是当我想添加我创建的模型时,我必须这样做:
@model ProjectName.Models.HomeModels.MyModel
注意:我知道如何导入名称空间,我想知道的是,在默认视图中,无论如何都没有名称空间导入和添加模型,但对于我自己创建的模型,它们没有。
我认为您在问为什么必须为您的类添加使用,而其他Microsoft类等在视图中自动可用而不需要使用?有一点黑魔法你没看到。好消息是,你可以做同样的事情。如果展开项目中的Views
目录,应该会看到一个Web。配置文件在那里。这与主要的Web不同。用于您的项目的配置;这个只适用于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语句。
哦。只是注意到核心标签。我认为这不再适用于core,但我将留下我的答案,以防有人需要MVC方法。在ASP。. NET Core,您将在Views
目录中创建一个_ViewImports.cshtml
文件,并在那里添加using语句:
_ViewImports.cshtml
@using MyProject.Models
需要使用@using命令指定命名空间。当您这样做时,这意味着您正在视图上使用该名称空间,并且可以从视图访问所有方法,但要小心其他名称空间中的重复名称。现在可以将模型添加到视图中。但是@using命令只能用于命名空间