Max
Max

Reputation: 19

Button click event is not working in code behind ASP.NET C#

I have a button in my web site that doesn't work at all. Every time I write my script inside the button event in code behind I get this error:

 Server Error in '/website.com' Application.
  Compilation Error
   Description: 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.

   Compiler Error Message: CS1061: 'ASP.test_aspx' does not contain a 
   definition for 'btnSubmit_Click' and no extension method 
   'btnSubmit_Click' accepting a first argument of type 'ASP.test_aspx' 
   could be found (are you missing a using directive or an assembly 
   reference?)

 Source Error:


  Line 5:  
  Line 6:  
  Line 7:  <asp:Button ID="btnSubmit" runat="server" Text="Submit" 
     OnClick="btnSubmit_Click" />
  Line 8:  
  Line 9:  

Code Behind

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

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

        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            lblmsg.Text = "Hello World!";
        }
    }
}

Source :

  <%@ Page Title="" Language="C#" MasterPageFile="~/webMaster.Master"  
  AutoEventWireup="True" CodeBehind="Test.aspx.cs"  
  Inherits="website.Test"  %>

    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" 
     runat="server">
      <asp:Button ID="btnSubmit" runat="server" Text="Submit" 
       OnClick="btnSubmit_Click" CausesValidation="False" />

      <asp:Label ID="lblmsg" runat="server"></asp:Label>  
    </asp:Content>

This is my Test.aspx.designer.cs code:

 namespace website {
     public partial class Test {

    /// <summary>
    /// btnSubmit control.
    /// </summary>
    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind  
        file.
    /// </remarks>
       protected global::System.Web.UI.WebControls.Button btnSubmit;

    /// <summary>
    /// lblmsg control.
    /// </summary>
    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind 
        file.
    /// </remarks>
    protected global::System.Web.UI.WebControls.Label lblmsg;
   }
 }

Update:

I solved the problem after changing CodeBehind="Test.aspx.cs" to CodeFile="Test.aspx.cs". More information CodeFile vs CodeBehind

Upvotes: 1

Views: 5202

Answers (2)

Tushar Gupta
Tushar Gupta

Reputation: 15933

Just remove the click event protected void btnSubmit_Click(object sender, EventArgs e)from backend and OnClick="btnSubmit_Click" from the aspx build the solution and then again define the click event and bind it.

This happens when you delete the auto generated click event.

Upvotes: 0

Roland
Roland

Reputation: 5232

You did not show the 3rd part of required code, where the event gets initialized with the delegate, that kind of stuff. Automatically created code, that we normally don't pay much attention to. See method InitializeComponent() in file Formxxx.Designer.cs.

To keep it simple, I would suggest: just remove the button click event handler and create it again with Visual Studio by clicking the button in the designer. Then all required code parts get created correctly.

Upvotes: 1

Related Questions