我在我的aspx项目中重命名了一些类和包,现在我有了以下错误:
“类型'_Default‘已经定义了一个具有相同参数类型的名为'Page_Load’的成员”
我有两页。在default.aspx代码背后,我看到:
Default.aspx:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="_Default" %>
Default.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
//error line under 'Page_Load'
}
search.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="search.aspx.cs" Inherits="_Default" %>
search.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
}
我添加到项目中的每一个新的ASPX页面都是自动添加到某个命名空间中的。
我试过改变继承的属性。但是,我找不到一种方法来修复这个错误和摆脱命名空间。
我正在使用2010。
发布于 2011-04-01 00:47:16
您添加的每个页面都会根据文件夹结构自动配置为命名空间。我没有看到足够的代码和结构,但您确定没有两次定义Page_Load吗?至少错误消息是这样说的。即使您使用与_Default不同的类名,它的行为也是一样的吗?
编辑后的:
是的,我们开始了。在Default.aspx和Search.aspx中定义相同的类(Search.aspx).您应该按照约定重命名您的类。ie:在Default.aspx中使用类"Default“,在Search.aspx中使用类"Search”
发布于 2011-04-01 00:52:57
双击错误,暂时将Page_Load
重命名为其他内容。进入函数的主体并键入Page_Load
。按F12.这将使您到达已经定义了第二个Page_Load
方法的位置。您可能会看到它位于同一个名称空间中的另一个部分_Default
类中。
发布于 2012-09-27 12:22:45
只是为了把一个具体的案子加起来。
当您将网站转换为Web应用程序时,可能会遇到这种情况。
当项目以网站的形式出现时,例如,当您将Default.aspx
添加到两个不同的文件夹中时,它们都创建了不具有相同类名的命名空间。两者都宣称是部分的,这是很好的。但是,当您转换到Web并尝试构建时,它们开始冲突,因为它们位于相同的命名空间中,声明为分部,并且有自己的Page_Load
方法。
解决方案之一可以是根据文件夹结构提供不同的类名或封装到不同的名称空间中。
https://stackoverflow.com/questions/5510974
复制