C# ASPX按钮-无任何事情发生

C# ASPX按钮-无任何事情发生,c#,asp.net,html,email,button,C#,Asp.net,Html,Email,Button,我在aspx页面上有一个按钮,用来发送电子邮件。。。我的代码似乎设置正确,但单击按钮时,什么也没有发生。这是代码。它的目的是显示一个警报,然后重定向到成功页面,但什么也没有发生 这里没有onclick,但是根据这一点,不应该有:而且我从指南中获得的代码也没有使用onclick,尽管它已经过时了 标记为: <%@ Page Title="Sign Up" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" C

我在aspx页面上有一个按钮,用来发送电子邮件。。。我的代码似乎设置正确,但单击按钮时,什么也没有发生。这是代码。它的目的是显示一个警报,然后重定向到成功页面,但什么也没有发生

这里没有onclick,但是根据这一点,不应该有:而且我从指南中获得的代码也没有使用onclick,尽管它已经过时了

标记为:

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

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
    Email Service
</h2>

Re-enter your email address to confirm signup for updates. 
<br />
<table border="0">
<tr>
    <td><b>Email:</b></td>
    <td><asp:TextBox runat="server" ID="UsersEmail" Columns="30"></asp:TextBox></td>
</tr>
<tr>
    <td colspan="2" align="center">
        <asp:Button runat="server" ID="SendEmail" Text="Sign Up"/>
    </td>
</tr>
</table>

电子邮件服务
重新输入您的电子邮件地址以确认注册更新。

电邮:

背后的代码是:

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

    }

    protected void SendEmail_Click(object sender, EventArgs e) //Handles SendEmail.Click
    {
        try
        {
            //!!! UPDATE THIS VALUE TO YOUR EMAIL ADDRESS
            string ToAddress = "info@removed.org";

            //(1) Create the MailMessage instance
            MailMessage mm = new MailMessage(UsersEmail.Text, ToAddress);

            //(2) Assign the MailMessage's properties

            mm.Subject = UsersEmail.Text + " would like to sign up for updates";
            mm.Body = "Hello, I would like to sign up for updates. My email is " + UsersEmail.Text + ". Thank you.";
            mm.IsBodyHtml = false;

            //(3) Create the SmtpClient object
            SmtpClient smtp = new SmtpClient("[removed]");
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

            //(4) Send the MailMessage (will use the Web.config settings)
            smtp.Send(mm);
        }
        catch (Exception ex)
        {
            string strError = "<Script language=javascript>alert('Error');</Script>";
            Response.Write(strError);
            Response.Redirect("Success.aspx");

        }

        string strMsg = "<Script language=javascript>alert('Emailsent');</Script>";
        Response.Write(strMsg);
        Response.Redirect("Success.aspx");

        //System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE=""JavaScript"">alert(""Hello this is an Alert"")</SCRIPT>");
    }

}
public分部类\u默认值:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
}
受保护的无效发送电子邮件\u单击(对象发件人,事件参数)//处理发送电子邮件。单击
{
尝试
{
//!!!将此值更新到您的电子邮件地址
字符串ToAddress=”info@removed.org";
//(1) 创建MailMessage实例
MailMessage mm=新邮件(UsersEmail.Text,ToAddress);
//(2) 分配邮件的属性
mm.Subject=UsersEmail.Text+“想注册更新”;
mm.Body=“你好,我想注册更新。我的电子邮件是“+UsersEmail.Text+”。谢谢。”;
mm.IsBodyHtml=false;
//(3) 创建SmtpClient对象
SmtpClient smtp=新SmtpClient(“[删除]”);
smtp.DeliveryMethod=SmtpDeliveryMethod.Network;
//(4) 发送邮件消息(将使用Web.config设置)
smtp.Send(mm);
}
捕获(例外情况除外)
{
string strError=“警报('Error');”;
响应。写入(strError);
重定向(“Success.aspx”);
}
字符串strMsg=“警报('Emailsent');”;
响应写入(strMsg);
重定向(“Success.aspx”);
//System.Web.HttpContext.Current.Response.Write(“警报”(“您好,这是警报”);
}
}
}

我真的怀疑onclick是否是解决方案,因为它不会处理任何代码


有什么想法吗?谢谢。

将处理程序添加到事件中

<asp:Button runat="server" ID="SendEmail" Text="Sign Up" OnClick="SendEmail_Click"/>

将处理程序添加到事件中

<asp:Button runat="server" ID="SendEmail" Text="Sign Up" OnClick="SendEmail_Click"/>

您需要在按钮上分配eventhandler:

<asp:Button runat="server" ID="SendEmail" Text="Sign Up" OnClick="SendEmail_Click" />

您需要在按钮上分配eventhandler:

<asp:Button runat="server" ID="SendEmail" Text="Sign Up" OnClick="SendEmail_Click" />

如果
页面指令
AutoEventWireup
属性设置为true(或者如果它丢失,因为默认情况下为true),页面框架会自动调用页面事件,特别是
页面初始化和页面加载
方法。在这种情况下,不需要显式处理程序

如果出现
AutoEventWireUp=false

protected void Page_Load(object sender, EventArgs e)
{
}
但当值更改为True时,将执行此操作


第二个问题是希望执行按钮单击事件而不声明其处理程序。这是不可能的。如果您不想在HTML中注册它,有另一种方法可以在代码隐藏中注册它,如下所示

protected void Page_Load(object sender, EventArgs e)
{
      Button b = new Button();
      b.Click += new EventHandler(b_Click);
}
如果
页面指令
AutoEventWireup
属性设置为true(或者如果缺少,因为默认情况下为true),页面框架将自动调用页面事件,特别是
页面初始化和页面加载
方法。在这种情况下,不需要显式处理程序

如果出现
AutoEventWireUp=false

protected void Page_Load(object sender, EventArgs e)
{
}
但当值更改为True时,将执行此操作


第二个问题是希望执行按钮单击事件而不声明其处理程序。这是不可能的。如果您不想在HTML中注册它,有另一种方法可以在代码隐藏中注册它,如下所示

protected void Page_Load(object sender, EventArgs e)
{
      Button b = new Button();
      b.Click += new EventHandler(b_Click);
}

尝试使用onclick您的aspx.cs文件名是什么?它是“signup.aspx.cs”还是“\u Default.aspx.cs”?我想知道没有必要为自定义输入操作连接事件处理程序的印象是从哪里来的?尝试使用onclick您的aspx.cs文件名是什么?它是“signup.aspx.cs”还是“\u Default.aspx.cs”?我想知道没有必要为自定义输入操作连接事件处理程序的印象是从哪里来的?@AdrianIftode关于AutoEventWireup你是对的,我不知道我为什么会有那个大脑屁。我仍然坚持不需要标记中的OnClick。这就是答案。。。虽然现在我找不到主机名。。。让我想一想out@AdrianIftode你说得对,我不知道为什么我会有那个脑屁。我仍然坚持不需要标记中的OnClick。这就是答案。。。虽然现在我找不到主机名。。。我要弄明白的事