繁体   English   中英

生成的Razor视图文件无法识别模型类

[英]Generated Razor view file does not recognise the model class

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

obj / Debug / netcoreapp2.1 / Razor / Views / Product / List.g.cshtml.cs(28,88):错误CS0246:找不到类型或名称空间名称“ ProductsListViewModel”(您是否缺少using指令或程序集引用?)[/ Users / pedram / OneDrive-友议院AB / visualstudioonmacprojects / SportsStore / SportsStore.csproj]

obj / Debug / netcoreapp2.1 / Razor / Views / Product / List.g.cshtml.cs(128,71):错误CS0246:找不到类型或名称空间名称“ ProductsListViewModel”(您是否缺少using指令或程序集引用?)[/ Users / pedram / OneDrive-友议院AB / visualstudioonmacprojects / SportsStore / SportsStore.csproj]

构建失败。 请修复构建错误,然后重新运行。

当我导航到提到的文件时,我意识到SportsStore.Models.ViewModels.ProductsListViewModel在两个地方使用其全名SportsStore.Models.ViewModels.ProductsListViewModel来解决类ProductsListViewModel ,才能正确构建项目。 但这只能解决问题,直到下一个版本。

在构建之前清理项目( dotnet clean )似乎也无济于事。

我对obj文件夹中发生的事情没有太多控制权。 是什么导致此缺少名称空间的问题?

更新:

/Views/Product/List.cshtml的内容

@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>

在.cshtml文件的第一行中,您声明在视图中使用的模型的类型。 从错误消息中很明显,无法解析ProductsListViewModel 要解决该问题,您至少有两个选择:

  1. 使用@model SportsStore.Models.ViewModels.ProductsListViewModel ,它是完全限定的名称(FQN)。
  2. 使用@using ,像这样:

     @using SportsStore.Models.ViewModels @model ProductsListViewModel 

在选择哪种方式时, 主要取决于您的偏好。

Visual Studio Code似乎不像Visual Studio一样支持Razor文件-它似乎具有不错的语法突出显示支持,但似乎不编译.cshtml文件以发现像您这样的编译错误。有。

您首先修改的文件( List.g.cshtml.cs )是一个生成的文件,是通过处理.cshtml文件生成的,因此不应进行修改。 如果您确实对其进行了修改,则下次处理源.cshtml文件时,它将被替换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM