这是我遇到过的最奇怪的错误。

直到今天,该MVC Web项目仍可以正常工作。几周来没有任何人对此进行过研究。

即使NOTHING发生了更改,但现在只需运行它仍会导致:



(x5)



(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中的 View 中搜索都找不到任何文件夹的原因),其中包含错误键入的herit语句。最初由外包商创建时,排除的文件夹称为ColorBox。团队中的另一个开发人员将其复制并重命名为ColourBox,我决定引用“正确拼写所有内容”。现在只能允许所说的开发人员使用口语拼写法进行编码。

最佳答案

所以这是我的猜测。

content.ascx View (或任何命名的 View )中,您已声明:

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

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

10-08 07:02