首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成的Razor视图文件不识别模型类。

生成的Razor视图文件不识别模型类。
EN

Stack Overflow用户
提问于 2018-10-24 12:08:29
回答 1查看 2.8K关注 0票数 1

当我使用VS代码构建和运行(dotnet run) ASP.NET Core项目时,我得到以下两条错误消息:

obj/Debug/netcoreapp2.1/Razor/Views/Product/List.g.cshtml.cs(28,88):error CS0246:无法找到类型或命名空间名称'ProductsListViewModel‘(您是缺少了一个使用指令还是程序集引用?)/User/pedram/OneDrive- House of Friends AB/visualstudioonmacprojects/SportsStore/SportsStore.csproj obj/Debug/netcoreapp2.1/Razor/Views/Product/List.g.cshtml.cs(128,71):error CS0246:无法找到类型或命名空间名称'ProductsListViewModel‘(您是缺少了一个使用指令还是程序集引用?)/User/pedram/OneDrive- House of Friends AB/visualstudioonmacprojects/SportsStore/SportsStore.csproj 构建失败了。请修复生成错误并再次运行。

当我导航到提到的文件时,我意识到需要在两个地方使用全名ProductsListViewModel来处理类SportsStore.Models.ViewModels.ProductsListViewModel,这样项目才能正确构建。但这只能在下一次构建之前解决问题。

在构建之前清理项目(dotnet clean)似乎也没有帮助。

我对obj文件夹中发生的事情没有太多的控制。是什么导致了这个缺失的命名空间问题?

更新:

/Views/Product/List.cshtml含量

代码语言:javascript
复制
@model ProductsListViewModel
@foreach (var p in Model.Products) {
    @Html.Partial("ProductSummary", p)
}
<div page-model="@Model.PagingInfo" page-action="List" page-classes-enabled="true"
     page-class="btn" page-class-normal="btn-secondary"
     page-class-selected="btn-primary" class="btn-group pull-right m-1">
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-24 12:21:11

在.cshtml文件的第一行中,声明视图中使用的模型的类型。从错误消息中可以清楚地看到,ProductsListViewModel无法被解析。要解决这个问题,您至少有两个选择:

  1. 使用@model SportsStore.Models.ViewModels.ProductsListViewModel,这是一个完全限定的名称.
  2. 使用@using,如下所示: @using SportsStore.Models.ViewModels @model ProductsListViewModel

这主要是你应该选择哪一个的首选问题。

Visual似乎不像Visual那样支持Razor文件--它似乎有很好的语法--高亮显示支持,但似乎没有编译.cshtml文件以发现像您正在使用的编译错误。

首先修改的文件(List.g.cshtml.cs)是一个生成的文件,它是在处理.cshtml文件时生成的,不应该修改。如果您确实修改了它,它将在下一次处理源.cshtml文件时被替换。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52968632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档