2009-02-04 55 views
5

我目前正在使用Visual Studio 2008中的ASP.NET网站项目,并且每次对用户的页面后面的代码进行更改控制和浏览到正在使用用户控制的页面我收到以下错误:无法投射“X”类型的对象以键入“X” - ASP.NET

Unable to cast object of type 'ASP.basepage_master' to type 'ASP.basepage_master'.

我必须重建我的整个解决方案才能解决此错误。是否有其他人遇到这个错误,他们知道如何解决它?

回答

0

如果我在本地工作站上停止并重新启动IIS,我能够解决此问题。

2

从我的理解来看,这是有道理的。

您正在对代码隐藏进行更改。为了使这些更改生效,您需要构建该项目,以便将代码隐藏内容编译到该项目的DLL文件中。当您更改代码隐藏功能并且不构建项目时,您基本上已经拥有该页面的两个版本,并且ASP.Net无法解析这两个版本。所以,当你编译这个类的时候,这些改变会被调和到DLL中。

+0

我使用的网站项目模型,而不是在Visual Studio中的Web应用程序项目模型。 – 2009-02-05 15:29:49

+0

我仍然相信这个概念是相同的,除了建设一个DLL文件。 ASP.NET仍然需要编译源文件,它使用它的缓存版本来运行你的站点,而不是你未编译的“工作”版本。 http://www.odetocode.com/Articles/417.aspx – Carl 2009-02-05 17:51:53

8

删除您的临时ASP.NET文件(C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files中的所有内容)使这一切消失...一段时间。

-1

Eurekaaa !!知道了......这一个工程...

当你放下usercontrol或通过LoadControl方法加载它的路径中使用'代字符'。例如。 this.LoadControl("~/MyUserControl.ascx");

同样适用于页面上放置的控件。将波形符添加到aspx页面中用户控件的声明路径中。

我们可以称这是在VS2005中的错误,如果这个这么想的工作需要更多的解释是2008年

回复固定在VS我。或者,不要忘记标记为答案。

相关问题