将创建的模型添加到视图需要完整的命

时间:2016-11-18 12:27:12

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

我正在使用MVC 6创建我的第一个MVC应用程序。 例如,在Register.cshtml(默认情况下创建)中,模型添加如下:

@model RegisterViewModel

但是当我想添加我创建的模型时,我必须这样做:

@model ProjectName.Models.HomeModels.MyModel

注意: 我知道如何导入命名空间,我想知道的是,在默认视图中,没有命名空间导入和添加模型,但对于我自己创建的模型,他们没有。

2 个答案:

答案 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命令只能用于命名空间。

相关问题