这是我遇到过的最奇怪的错误。
直到今天,该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>" %>