ASP.NET Web Forms ASP кнопка Ошибка компилятора OnClick (CS1061) - PullRequest
0 голосов
/ 06 декабря 2018

Я получаю следующую ошибку:

An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compile Error Message: CS1061: 'codebehind' does not contain a definition for 'btnSave_Click' and no extension method 'btnSave_Click' accepting a first argument of type 'codebehind' could be found (are you missing a using directive or an assembly reference?)

Снимок экрана ошибки

Кнопка ASP в представлении:

<asp:Button ID="btnSave" runat="server" Text="Save" CssClass="btn btn-success btn-md" Width="100px" OnClick="btnSave_Click" />

Регистрация события в коде:

 override protected void OnInit(EventArgs e)
    {
        btnSave.Click += new EventHandler(btnSave_Click);

        InitializeComponent();
        base.OnInit(e);
    }
    private void InitializeComponent()
    {
        this.Load += new System.EventHandler(this.Page_Load);
    }

Событие OnClick:

private void btnSave_Click(object sender, EventArgs e)
    {
        //foo
    }

Что я пробовал:

  • Переименование onClickсобытие как в представлении, так и в коде
  • Удаление onClick, переход на вкладку дизайна, двойной щелчок по кнопке для автоматической генерации нового события
  • Изменение автоматической привязки события от ложного к истинному

Соответствующие вопросы для справки:

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

0 голосов
/ 06 декабря 2018

Сделать метод нажатия кнопки protected.

protected void btnSave_Click(object sender, EventArgs e)
{
    //foo
}

Но почему весь код в OnInit?Вы добавляете событие Click там, но также имеете его на самой кнопке, так что оно довольно избыточно.Вы можете удалить OnInit и InitializeComponent, и он все равно будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...