簡體   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