我一直在我的aspx项目中重命名一些类和包,现在我有这个错误:
"Type'_Default'已经定义了一个名为'Page_Load'的成员,它具有相同的参数类型"
我有两个aspx页面.在default.aspx代码隐藏中,我看到:
Default.aspx的:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="_Default" %>
Run Code Online (Sandbox Code Playgroud)
Default.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
//error line under 'Page_Load'
}
Run Code Online (Sandbox Code Playgroud)
search.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="search.aspx.cs" Inherits="_Default" %>
Run Code Online (Sandbox Code Playgroud)
search.aspx.cs:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
}
Run Code Online (Sandbox Code Playgroud)
我添加到项目中的每个新ASPX页面都会自动添加到某个命名空间中.
我试过改变继承attribuut.但我找不到修复此错误并摆脱命名空间的方法.
我正在使用Visual Studio 2010.

您添加的每个页面都会根据您的文件夹结构自动配置为命名空间.我没有看到足够的代码和结构,但你确定,你没有定义两次Page_Load吗?至少错误信息是这样说的.即使使用与_Default不同的类名,它的行为是否相同?
编辑后:
是的,我们去了.您在Default.aspx和Search.aspx中定义了相同的类(_Default)...您应该根据约定重命名您的类.即:在Default.aspx中使用"Default"类,并在Search.aspx中使用"搜索"类
双击错误,暂时将其重命名Page_Load为其他内容.进入函数体并键入Page_Load.按F12.这将使您到达Page_Load已定义第二种方法的地方.您可能会看到它位于同一名称空间中的另一个分部 _Default类中.
只是添加一个具体案例。
当您将网站转换为Web应用程序时,您可能会遇到这种情况。
当您的项目采用网站形式时,例如,当您添加Default.aspx到两个不同的文件夹时,它们都创建了没有具有相同类名的命名空间的项目。两者都声明是部分的,这很好。但是,当您转换为 Web 应用程序并尝试构建时,它们开始发生冲突,因为它们位于同一命名空间中,声明为部分的并具有自己的Page_Load方法。
解决方案之一可以是给出不同的类名或根据文件夹结构封装到不同的命名空间中。
| 归档时间: |
|
| 查看次数: |
36394 次 |
| 最近记录: |