Тип "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.
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 файлы расширений: Оригинальный код .csnamespace 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)
{
}
}
}
проблема решена.
Ура.