【问题标题】:Namespace name 'IndexModel' could not be found while running Entity Framework Core tutorial in ASP.NET Core在 ASP.NET Core 中运行 Entity Framework Core 教程时找不到命名空间名称“IndexModel”
【发布时间】:2020-12-18 10:09:18
【问题描述】:

我正在尝试学习 Microsoft 的本教程:

在 ASP.NET Core 中使用 Entity Framework Core 的 Razor 页面 - 教程 1(共 8 篇): [https://docs.microsoft.com/en-us/aspnet/core/data/ef-rp/intro?view=aspnetcore-5.0&tabs=visual-studio]

我正确创建了项目,但我无法运行该项目,因为当我在我的项目中替换教程“设置站点样式”中此步骤中复制的代码时: Views/Home/Index.cshtml 我尝试运行正在向我展示:

找不到类型或命名空间名称“IndexModel”...

问题似乎出在这里:

   @page
    @model IndexModel
    @{
        ViewData["Title"] = "Home page";
    }

这个模型在哪里找不到,我刚刚创建了应用,模型不存在?或者我粘贴了错误的文件,因为在教程中说:“Pages/Index.cshtml,用以下代码替换文件的内容:”我找不到“Pages”文件夹?

【问题讨论】:

    标签: asp.net-core entity-framework-core


    【解决方案1】:

    显然页面上的屏幕截图具有误导性,因为有一个选定的 MVC 项目,而本教程需要在没有 MVC 的“Web 应用程序”中工作。我没有看到上面说选择没有 MVC 的“Web 应用程序”,这是我的错误,但图片也具有误导性。我相信很多人都陷入了这个错误。

    The screenshot

    【讨论】:

      【解决方案2】:

      在您的示例项目中,您应该有:

      索引.cshtml 索引.cshtml.cs

      Index.cshtml.cs 可能嵌套在 Index.cshtml 下(因此展开)。

      检查 Index.cshtml.cs 是否包含如下内容:

      namespace ContosoUniversity.Pages
      {
          public class IndexModel : PageModel
          {
              private readonly ILogger<IndexModel> _logger;
      
              public IndexModel(ILogger<IndexModel> logger)
              {
                  _logger = logger;
              }
      
              public void OnGet()
              {
      
              }
          }
      }
      

      你可以看到这是你的 IndexModel 被声明的地方。

      您是否将页面重命名为 Index.cshtml?您是否重命名或删除了 Index.cshtml.cs?

      .cs 被称为“代码隐藏”,因为它的代码支持 .cshtml 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-01
        相关资源
        最近更新 更多