有一个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 公共对象
答案 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指令以匹配新的类型名称。