簡體   English   中英

命名空間“Y”中不存在類型或命名空間名稱“X” - 在 VS 生成的代碼中

[英]The type or namespace name 'X' does not exist in the namespace 'Y' - in VS generated code

這是我遇到過的最奇怪的錯誤。

這個 MVC Web 項目直到今天都運行良好。 幾周內沒有人處理過它。

即使沒有任何改變,現在簡單地運行它會導致:

命名空間“CMSModels.ViewModels”中不存在類型或命名空間名稱“ColourboxViewModel”

(x5)

命名空間“CMSModels”中不存在類型或命名空間名稱“Colourbox”(您是否缺少程序集引用?)

(x1)

項目中有對 CMSModels 的引用。 刪除此引用為命名空間中的每個其他類提供了大約 200 個額外的錯誤,所以我知道它正在工作,但不適用於這兩個錯誤。

這是錯誤指向的生成代碼行:

public class views_colorbox_index_aspx : System.Web.Mvc.ViewPage<IEnumerable<CMSModels.Colourbox>>, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {
...
public class views_colorbox_content_ascx : System.Web.Mvc.ViewUserControl<CMSModels.ViewModels.ColourboxViewModel> {

Intellisense 正在獲取 CMSModels.ColourBox 和 CMSModels.ViewModels.ColourboxViewModel 的位置。

我完全被難住了。 任何幫助都非常感謝,因為我完全不知所措。


好的,我找到了問題 - 但不是解決方案。

該類定義為

public class ColourBoxViewModel

然而生成的代碼正在尋找“ColourboxViewModel”類。 注意小寫的 B。自動生成代碼從哪里獲取類的名稱? 在項目中搜索顯示沒有提到它的小寫字母 b。

ColourBox 類的問題是一樣的。


問題解決了 - @František Žiačik 你是對的。 有一個已從項目中排除的文件夾(這就是為什么在整個項目和 Visual Studio 中的視圖中搜索一無所獲),其中包含錯誤類型的繼承語句。 最初由外包商創建時,排除的文件夾稱為 ColorBox。 這已被團隊中的另一位開發人員復制並重命名為 ColourBox,他決定,我引用,“正確拼寫所有內容”。 所述開發人員現在只能使用 Speak n' Spell 進行編碼。

我昨天遇到了這個錯誤,我找到了這些答案,但就我而言,它們沒有幫助。 相反,事實證明,在我的客戶端項目屬性中,目標框架設置為 .NET Framework 4 客戶端配置文件。 解決方案是將其更改為完整的 .NET 4。希望這可以幫助某人,因為 VS 中的錯誤不是很有幫助。

所以這是我的猜測。

在您的content.ascx視圖(或任何名稱)中,您已聲明:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CMSModels.ViewModels.ColourboxViewModel>" %>

代替

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CMSModels.ViewModels.ColourBoxViewModel>" %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM