[英]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
。 要解決該問題,您至少有兩個選擇:
@model SportsStore.Models.ViewModels.ProductsListViewModel
,它是完全限定的名稱(FQN)。 使用@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.