MVC5与VB.NET:“BC30451:'ViewData'未声明。”切换到调试配置时

时间:2015-02-13 01:41:04

标签: asp.net-mvc vb.net asp.net-mvc-5

我有一个MVC5项目,目前在“发布配置”上设置,它可以100%运行。但是,只要我将项目配置从Release切换到Debug,那么一切都会出错......即使我将其切换回Release模式,一切仍然会被破坏。我能让项目再次运作的唯一方法就是从备份中恢复。

以下是正在发生的事情。 首先,在运行项目时,我收到以下错误:

  

BC30451:未声明'ViewData'。由于它可能无法访问   保护水平。

如果我使用Visual Studio 2013打开项目中的任何视图,我可以看到各种各样的事情被标记为ViewData,Html,Url等错误。

在视图中引用@Html或@ViewData时,它通常引用视图基类(WebViewPage)的.Html和.ViewData属性。但是,如果我开始输入“@Html”。在任何视图中,我可以在自动完成中看到它指的是System.Web.Webpages.Html命名空间而不是WebViewPage.Html属性。这是因为视图不是从System.Web.Mvc.WebViewPage类继承的。

关于我可以从哪里开始寻求解决此问题或为何发生这种情况的任何指导?

编辑:的 所以既然没有人回应,我就走了很长的路。我创建了一个全新的MVC5项目,通过Nuget添加了所有软件包,然后简单地将我的所有文件从旧项目复制到新项目,现在它可以工作。

有没有人知道这可能导致什么?如果项目再次突然决定停止工作,我不希望将来再次遇到这些麻烦。

4 个答案:

答案 0 :(得分:2)

好的,我想我在这里找到了部分原因。事情是,因为原始代码是有效的(它正确编译并且智能感知得到它)和用于工作的代码然后突然,在编译后的一天,它就停止工作。

无论如何,在视图中,当指定ModelType时,如果您不使用全名,则可能会发生或最终发生此错误。 例如,使用:

@ModelType Models.SomeNamespace.SomeClass

将导致错误(即使项目的根命名空间是" MyProject")并且可以通过简单地指定完整的命名空间和类名来修复它。

@ModelType MyProject.Models.SomeNamespace.SomeClass

答案 1 :(得分:1)

调试程序集可能已被锁定。可以关闭Visual Studio,搜索并删除解决方案目录中的所有bin文件夹。然后打开并重建。

其他选项是进入MVC项目属性并比较两个构建配置。您是否在发布和调试之间定位了不同的.NET框架? 32位vs 64位?等?

答案 2 :(得分:1)

看起来有些MVC程序集已损坏。 您是否检查了引用的程序集中的某些错误?

还尝试清除所有.NET内部缓存。有关此stackoverflow主题的更多信息:Could not load file or assembly ... The parameter is incorrect

答案 3 :(得分:0)

在我的情况下,导入的 ViewModel 类名不正确,更正它解决了问题。

相关问题