我目前正在使用Visual Studio 2008中的ASP.NET网站项目,并且每当我对用户控件的页面后面的代码进行更改并浏览到使用用户控件的页面时,我会收到以下错误:< / p>
无法投射类型的对象 输入'ASP.basepage_master' 'ASP.basepage_master'。
我必须重建我的整个解决方案才能解决此错误。有没有其他人遇到过这个错误,他们知道如何解决它吗?
答案 0 :(得分:8)
删除临时ASP.NET文件(C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files中的所有内容)会让它消失......暂时。
答案 1 :(得分:2)
根据我的理解,这是有道理的。
您正在对代码隐藏进行更改。为了使这些更改生效,您需要构建该项目,以便可以将代码隐藏编译到该项目的DLL文件中。当您更改代码隐藏,并且不构建项目时,您实际上已经获得该页面的两个版本,并且ASP.Net无法解析这两个版本。因此,在编译类时,更改将协调到DLL中。
答案 2 :(得分:0)
如果我在本地工作站上停止并重新启动IIS,我就可以解决此问题。
答案 3 :(得分:0)
答案 4 :(得分:0)
我遇到了同样的问题,终于可以建立网站了。
我必须使用不同的名称为ASP.NET项目创建另一个母版页,将原始内容复制并粘贴到新的母版页中,使我的所有子窗体都从新的母版页继承,然后删除旧版母版页。
该网站将立即运行。我不知道调试器是如何困惑的,并开始使用不存在的缓存对象。我尽一切努力使它释放该缓存(删除C:\%USER%\AppData\Local
和C:\Windows\Microsoft.NET
下的临时文件,重命名母版页,重命名Master类,对文件进行更改以迫使它们重新加载,重建解决方案,请添加web.config
选项<compilation batch="false" debug="false"/>
),除了删除母版页。
删除母版页已为我修复,但我不明白为什么必须这样做。
这是我奋斗的线索:
答案 5 :(得分:-1)
Eurekaaa !!知道了......这个有用......
当您放弃用户控件或通过LoadControl
方法加载它时,在其路径中使用“波浪号”。例如。 this.LoadControl("~/MyUserControl.ascx");
同样适用于页面上丢失的控件。将波形符添加到aspx页面中用户控件的声明路径。
我们可以将其称为VS2005中的错误,并在VS 2008中修复。
如果这不起作用或需要更多解释,请回复我。或者,不要忘记将其标记为答案。