dis*_*kid 1 c# razor asp.net-core-mvc visual-studio-code asp.net-core
当我dotnet run
使用 VS Code构建和运行 ( ) 我的 ASP.NET Core MVC 项目时,我收到以下两条错误消息:
obj/Debug/netcoreapp2.1/Razor/Views/Product/List.g.cshtml.cs(28,88): 错误 CS0246: 找不到类型或命名空间名称“ProductsListViewModel”(您是否缺少 using 指令或程序集参考?)[/Users/pedram/OneDrive - House of Friends AB/visualstudioonmacprojects/SportsStore/SportsStore.csproj]
obj/Debug/netcoreapp2.1/Razor/Views/Product/List.g.cshtml.cs(128,71):错误 CS0246:找不到类型或命名空间名称“ProductsListViewModel”(您是否缺少 using 指令或程序集参考?)[/Users/pedram/OneDrive - House of Friends AB/visualstudioonmacprojects/SportsStore/SportsStore.csproj]
构建失败。请修复构建错误并再次运行。
当我导航到提到的文件时,我意识到ProductsListViewModel
需要SportsStore.Models.ViewModels.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>
Run Code Online (Sandbox Code Playgroud)
在 .cshtml 文件的第一行,声明视图中使用的模型的类型。从错误消息中,很明显ProductsListViewModel
无法解决。要解决该问题,您至少有两个选择:
@model SportsStore.Models.ViewModels.ProductsListViewModel
,这是一个完全限定名称 (FQN)。使用@using
,像这样:
@using SportsStore.Models.ViewModels
@model ProductsListViewModel
Run Code Online (Sandbox Code Playgroud)这主要是您应该选择哪个的偏好问题。
Visual Studio Code 似乎不像 Visual Studio 那样支持 Razor 文件——它似乎有不错的语法高亮支持,但似乎没有编译 .cshtml 文件以发现像你这样的编译错误拥有。
您第一次修改的文件 ( List.g.cshtml.cs
) 是生成的文件,它是通过处理 .cshtml 文件生成的,不应修改。如果您修改它,它会在下次处理源 .cshtml 文件时被替换。
归档时间: |
|
查看次数: |
2120 次 |
最近记录: |