.Net 3.5 NameSpace问题?

时间:2011-02-03 15:00:31

标签: asp.net vb.net

有一个asp.net 3.5应用程序 - 编译很好,但当浏览到页面时,我得到以下错误。 搜索这一切似乎表明它是一个命名空间问题,但我的所有页面似乎都声明了正确的命名空间 任何帮助表示赞赏!

Phil J.

服务器错误。

分析器错误 说明:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。

分析器错误消息:此处不允许使用'bm2.PolicyLookup',因为它不会扩展类'System.Web.UI.Page'。

来源错误:

第1行:<%@ Page Language =“vb”AutoEventWireup =“false”CodeBehind =“PolicyLookup.aspx.vb”Inherits =“bm2.PolicyLookup”validateRequest =“false”aspcompat =“true”%> 第2行:
第3行:

源文件:/internet/bm2/bm2/policylookup.aspx行:1

======= System.Web.UI.Page确实继承自代码隐藏:

命名空间bm2     公共类策略查找         继承System.Web.UI.Page         受保护的WithEvents lblResponse As Label         受保护的事件btnSubmit As System.Web.UI.WebControls.Button         将myModel调暗为新的bm2.Model         昏暗的postData         公共对象

2 个答案:

答案 0 :(得分:0)

如果这是名称空间问题(非常不可能),您需要在页面中添加@import语句:

<%@ Import namespace=”My.Namespace.Where.bm2.PolicyLookup.Exists” %>

修改您的@Page指令以包含完全限定的类名

....inherits="My.Namespace.bm2.PolicyLookup"

当然,这仅在bm2.PolicyLookup来自System.Web.UI.Page时才有效。

@Page属性

inherits="bm2.PolicyLookup"

告诉ASP.NET类bm2.PolicyLookup继承自System.Web.UI.Page,并且在处理页面以处理on_load()render()等事件时应该实例化它。但是,ASP.NET认为您的类bm2.PolicyLookup不会从System.Web.UI.Page继承,因此会出错。

为了使webforms引擎能够处理您的页面,它必须从现有的Page类继承。该类提供了所需的所有事件处理程序,呈现方法等。

此外,还有一些不相关的建议:Visual Studio在使用VB.Net站点时隐藏了许多功能。考虑转移到C#,转到Web应用程序项目而不是网站项目。

答案 1 :(得分:0)

我不知道System.Web中是否有PolicyLookup类(我认为没有),但是当我试图命名一个SiteMap.aspx页面时遇到了类似的问题,因为有一个类型名为SiteMap(虽然它位于不同的命名空间中,但它似乎仍然会导致问题)。修复是完全重命名,或者让类名后面的代码以下划线为前缀(您可能必须更新aspx中的Page指令以匹配新的类型名称。