ASP.net ошибка компиляции CS1061 при развертывании

у меня немного болит здесь, и я просто не могу понять, что не так.

у меня есть ASP.net проект, который я развернул на сервере. Сначала все казалось нормальным, никаких ошибок. Однако в качестве последнего дополнения я хотел добавить функцию поиска в довольно большой список, поэтому я добавил следующий синтаксис в свою разметку:

<td>
    Search Server:
    <asp:TextBox ID="txtSearch" runat="server" />
    <asp:Button ID="btnLookup" runat="server" OnClick="btnLookup_Clicked" Text="Search" />
    <asp:Label ID="lblFeedback" runat="server" />
</td>

и следующие за кодом:

protected void btnLookup_Clicked(object sender, EventArgs e)
{
    lblFeedback.Text = "";
    Session["IsSearch"] = true;
    LoadServerList();
}

когда я запускаю это локально, он работает просто отлично, как я ожидать. Однако!

когда я копирую эти файлы на сервер, я получаю ошибку компиляции:

Сообщение Об Ошибке Компилятора: CS1061: 'ASP.ntservice_ reports_ reports_ serverlist_ manage_ aspx "не содержит определения для" btnLookup_ Clicked "и никакого метода расширения "btnLookup_ Clicked", принимающего первый аргумент типа " ASP.ntservice_ reports_ reports_ serverlist_ manage_ aspx ' можно найти (отсутствует директива using или сборка ссылка?)

Он говорит, что нет ничего, что обрабатывает мое событие Clicked, хотя оно работает, когда я запускаю его через Visual studio.

какие идеи?

изменить: То, что я пробовал сам

    переименовать
  • удаление и считывание кнопки
  • добавить через designer
  • переименование события click
  • удаление события из разметки позволяет нормальное выполнение ... :/

14 ответов


является ли ваш проект веб-сайтом или веб-приложением? Я бы предположил, что это проект веб-приложения и что, возможно, у вас нет последней DLL, развернутой из папки bin. Проверьте версии между вашей машиной и сервером, чтобы убедиться, что они одинаковы.


Я думаю, что эта ошибка генерируется при изменении имени объекта, например. Text1 - " txtSerialNo у меня была такая же проблема, но я мог ее исправить. Вот решение: Перейдите в режим разделения, нажмите на текстовое поле / объект, в коде удалите строку

[**ontextchanged="txtSerialNo_TextChanged"**]

From:

[<asp:TextBox ID="txtSerialNo" runat="server" 
     ontextchanged="txtSerialNo_TextChanged"></asp:TextBox> //remove this line]

В:

[<asp:TextBox ID="txtSerialNo" runat="server"</asp:TextBox>]

Я надеюсь, что это работает для вас. Будьте здоровы.


вы развернули dll?


Я испытал ту же проблему. И я сделал метод обработчика событий общедоступным, проблема решена!

спасибо!


установить

<%@ Page ... Language="C#" CodeBehind="... .aspx.cs" Inherits="..." .../>

в вашей директиве страницы правильно?


Это должно исправить это, если ты все остальное правильно:

попробуйте сделать совершенно новое событие click (используя разделенное представление, просто чтобы убедиться, что вы правильно получили подпись метода.)

затем скопируйте код из предыдущего события clicked во вновь созданное событие, скопируйте имя метода нового события в исходную кнопку и посмотрите, работает ли оно.


попробуйте переименовать обработчик событий в какую-то вещь OnClick="buttonLookup_Clicked"... и изменение подписи обработчика событий в соответствии с ней.


имея ту же проблему сам, я сделал метод общедоступным, так что удалил ошибку компилятора, а затем последовал за этим с включением всего в

<form runat="server">
 .....  
 <asp:Button id...  OnClick="MethodName"/>
</form>

надеюсь, что это помогает


сделайте события вашими событиями onclick общедоступными.


Это может произойти, если событие подписано программно, а также в разметке (через свойства)


на Build ==> Clean Solution ==> Run (f5)


Я только что перезапустил ASP.NET затем сервер разработки снова запускается.


Я испытал ту же проблему с вами, но я исправляю ее с помощью include CodeFile="xxxx.aspx.cs" в свою страница директива, надеюсь, что это поможет.


щелкните правой кнопкой мыши на форме, которая повлияла и перейдите к свойствам, измените действие сборки для компиляции. обычно эта ошибка возникает, когда действие сборки изменяется на resource.