Тип "Default" уже определяет элемент с именем "Page Load" с теми же типами параметров

я переименовал некоторые классы и пакеты в моем проекте aspx, и теперь у меня есть эта ошибка:

" тип '_Default' уже определяет член с именем 'Page_Load' с помощью те же типы параметров"

у меня есть две страницы aspx. По умолчанию.аспн отделенного кода я см.:

по умолчанию.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="_Default" %>

по умолчанию.аспн.cs:

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        //error line under 'Page_Load'
    }

поиск.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="search.aspx.cs" Inherits="_Default" %>

поиск.аспн.cs:

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)

    }

каждая новая страница ASPX, которую я добавляю в свой проект, автоматически добавляется в некоторое пространство имен.

Я пробовал менять наследует attribuut. Но я не мог найти способ, чтобы исправить эту ошибку и избавиться от пространства имен.

Я использую Visual Studio 2010.

My project structure

5 ответов


каждая добавляемая страница автоматически настраивается на пространство имен в зависимости от структуры папок. Я не вижу достаточного кода и структуры, но вы уверены, что у вас нет page_load, определенного дважды? По крайней мере, так говорится в сообщении об ошибке. Ведет ли он себя одинаково, даже если вы используете другое имя класса, чем _Default ?

после правки:

Да, вот так. Вы определяете один и тот же класс (_Default) по умолчанию.aspx и поиск.аспн ... Вы должны переименовать ваши занятия согласно условностям. ie: используйте класс "Default"по умолчанию.aspx и используйте класс "Поиск" в вашем поиске.аспн


дважды щелкните ошибку, временно переименуйте Page_Load к чему-то еще. Спуститесь в тело функции и введите Page_Load. Нажмите Клавишу F12. Это приведет вас к месту, где у вас есть второй Page_Load метод уже определен. Вы, вероятно, увидите, что это в другом частичная _Default класс то же самое пространство имен.


просто сложить конкретный случай.

вы можете столкнуться с этой ситуацией при преобразовании веб-сайта в веб-приложение.

когда ваш проект в виде веб-сайта, когда вы добавляете, например Default.aspx в две разные папки, которые они оба создали без пространства имен с тем же именем класса. Оба объявлены частичными, и все в порядке. Но когда вы конвертируете в веб-приложение и пытаетесь построить, они начинают конфликтовать, поскольку они находятся в одном пространстве имен, объявленном частичные и имеют свои Page_Load методы.

одним из решений может быть предоставление различных имен классов или инкапсуляция в различные пространства имен в соответствии со структурой папок.


Так как ваш класс public partial class _Default вероятно, это какое-то имя, которое вызывает проблему. Попробуйте определить другие части _Default. Поскольку это частичный класс, вы можете иметь столько частичных, сколько хотите.. Проблема вероятно в том, что определяется в одной из тем.


Ниже перечислены проблемы, с которыми я столкнулся при копировании файлов в мое решение, нажав на сообщенную ошибку или на "Перейти к определению" ввести меня в заблуждение, чтобы определить причину. Подсказка на одну строку выше..... !

я разоблачаю проблему и как я, наконец, решил ее.

ошибки при создании приложения:

  • Ошибка 1 Тип ' Решение 1.Сеть.yourabc ' уже определяет член называется 'В' С те же типы параметров
    C:\\trunk\Solution1.Web\yourABC.аспн.cs 12 24
    Решения1.Web

  • Ошибка 2 Типа ' Решение 1.Сеть.yourabc ' уже определяет член называется 'В' с теми же типами параметров
    C:\\trunk\Solution1.Web\GuideABT.аспн.cs 12 24
    Решения1.Web

как возникла проблема: Я копирую / вставляю файл .aspx в том же решении, чтобы сделать новый файл. C#: ошибка, как показано ниже чтобы появиться; худшие другие вводящие в заблуждение ошибки начали влиять на приложение во время выполнения:

* имейте в виду, что ошибка 1 не является ошибкой, это правильно, так как это исходный код

Error    1    Type 'Solution1.Web.yourABC' already defines a member called 'Page_Load' with the same parameter types    C:\<folderpath>\trunk\Solution1.Web\yourABC.aspx.cs    12    24    Solution1.Web 

Error    2    Type 'Solution1.Web.yourABC' already defines a member called 'Page_Load' with the same parameter types    C:\<folderpath>\trunk\Solution1.Web\GuideABT.aspx.cs    12    24    Solution1.Web 

оба класса "Page_Load" пусты, обычно они генерируются автоматически Visual Studio Engine

решение: Изменить .cs-файл недавно созданной / вставленной страницы aspx, чтобы отразить имя страницы после класса "name". В этом деле "GuideABT.aspx " - это новый вставленный и переименованный файл aspx:

исправление ошибки 1: исправление не требуется, поскольку оно скопировано из файла. Убедитесь, что имя файла и имя ссылки на класс совпадают .cs файлы:

имя файла yourABC.aspx, проверьте .cs файлы расширения:

namespace Solution1.Web
{
    public partial class yourABC : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

исправление ошибки 2: Измените вставленный файл. Исправьте имя класса, чтобы отразить имя .файл ASPX.

имя GuideABT.aspx, проверьте .cs файлы расширений: Оригинальный код .cs
namespace Solution1.Web
{
    public partial class *yourABC* : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

исправлен этот код .cs to

namespace Solution1.Web
{
    public partial class **GuideABT** : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

проблема решена.

Ура.