asp.net - ASP.NET Web 窗体按钮未在代码隐藏中引用
问题描述
我的问题是我的 asp.net 按钮的 onclick 行为不起作用,因为在btnSendMail_Click显示的 0 引用后面的代码上。我在后面添加了我的代码和代码以及我的错误消息。通常我已经多次使用这种方法,但这次我做不到。
我的一些html代码
<div class="col-lg-8" runat="server">
<div class="contact-form section-top-gap-100" data-aos="fade-up" data-aos-delay="200">
<asp:Label Text="<%$Resources:Lang, ContactUs %>" runat="server" Font-Size="Large" Font-Bold="true"></asp:Label>
<div id="contact-form">
<div class="row">
<div class="col-lg-6">
<div class="default-form-box mb-20">
<asp:Label Text="<%$Resources:Lang, Name %>" runat="server" Font-Bold="true"></asp:Label>
<input name="name" type="text" id="contactName" runat="server" placeholder="<%$Resources:Lang, NamePlaceHolder %>" >
</div>
</div>
<div class="col-lg-6">
<div class="default-form-box mb-20">
<asp:Label Text="<%$Resources:Lang, mail %>" runat="server" Font-Bold="true"></asp:Label>
<input name="email" type="email" id="contactEmail" runat="server" placeholder="<%$Resources:Lang, mailPlaceHolder %>" >
</div>
</div>
<div class="col-lg-12">
<div class="default-form-box mb-20">
<asp:Label Text="<%$Resources:Lang, subject %>" runat="server" Font-Bold="true"></asp:Label>
<input name="subject" type="text" id="contactSubject" runat="server" placeholder="<%$Resources:Lang, SubjectPlaceHolder %>">
</div>
</div>
<div class="col-lg-12">
<div class="default-form-box mb-20">
<asp:Label Text="<%$Resources:Lang, message %>" runat="server" Font-Bold="true"></asp:Label>
<textarea name="message" id="contactMessage" cols="30" rows="10" runat="server" placeholder="<%$Resources:Lang, MessagePlaceHolder %>" ></textarea>
</div>
</div>
<div class="col-lg-12">
<asp:Button runat="server" CssClass="contact-submit-btn" Text="<%$Resources:Lang, sendMessage %>" ID="btnSendMail" OnClick="btnSendMail_Click" UseSubmitBehavior="true"/>
</div>
<p class="form-messege"></p>
</div>
</div>
</div>
</div>
我的代码在后面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AsjSpray.Web.Pages
{
public partial class Iletisim : BasePage
{
#region Properties
public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
#endregion
protected void Page_Load(object sender, EventArgs e)
{
Page.Title = "AsjSpray " + Resources.Lang.ContactUs;
log.Info("İletişim Sayfasına girildi");
}
private static string GetIp()
{
string VisitorsIPAddress = string.Empty;
try
{
if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
{
VisitorsIPAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
{
VisitorsIPAddress = HttpContext.Current.Request.UserHostAddress;
}
}
catch (Exception ex)
{
log.Error("Hata [Iletisim.GetIp()]" + ex.Message);
}
return VisitorsIPAddress;
}
bool IsValidEmail(string email)
{
try
{
var addr = new System.Net.Mail.MailAddress(email);
return addr.Address == email;
}
catch
{
return false;
}
}
protected void btnSendMail_Click(object sender, EventArgs e)
{
var senderMessage = contactMessage.Value;
var senderName = contactName.Value;
var senderMail = contactEmail.Value;
var subject = contactSubject.Value;
var ipAddress = GetIp();
SmtpClient smtpClient = new SmtpClient();
NetworkCredential basicCredential = new NetworkCredential("mail@test.com", "pass");
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress("mail@test.com");
smtpClient.Host = "mail.asjspray.com";
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = basicCredential;
smtpClient.Port = 587;
smtpClient.EnableSsl = true;
message.From = fromAddress;
message.Subject = subject;
//Set IsBodyHtml to true means you can send HTML email.
message.IsBodyHtml = true;
message.Body = "Gönderici adı: " + senderName + "<br/> Gönderici maili: " + senderMail + "<br/> Gönderici mesajı: " + senderMessage + "<br/> Gönderici ip adresi: " + ipAddress; ;
message.To.Add("fatihcayir2001@gmail.com");
message.Bcc.Add("");
try
{
ServicePointManager.ServerCertificateValidationCallback = delegate (object s,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
if (senderMessage != null && senderName != null &&
senderMail != null)
{
smtpClient.Send(message);
ScriptManager.RegisterStartupScript(this, GetType(), "CallFunction", "successful();", true);
log.Info("Mail gönderme başarılı mail adresi: " + senderMail);
}
else if (IsValidEmail(senderMail) == false)
{
ScriptManager.RegisterStartupScript(this, GetType(), "CallFunction", "emptyMail();", true);
log.Warn("Mail gönderilmedi mail geçersiz " + senderMail);
}
else
{
ScriptManager.RegisterStartupScript(this, GetType(), "CallFunction", "hata();", true);
log.Error("Mail gönderilmedi");
}
}
catch (Exception ex)
{
log.Error("Hata, Mail gönderilemedi " + ex.Message);
Response.Write(ex.Message);
Page.Response.Write("<script>console.log('" + ex.Message + "');</script>");
}
}
}
}
我的错误图片
如您所见,button_click 的引用为 0。
解决方案
我解决了这个问题。这是因为我在 MasterPage 搜索栏中有“必需”属性。它阻止了点击按钮。
推荐阅读
- lua - 您如何在 ROBLOX Studio 中制作 RTS 相机/城市建设者相机?
- c# - 从我的 Winform C# 执行和关闭其他应用程序
- excel - 获取Excel中指定范围的最后一行
- validation - 使用可能的数字或单词进行自定义数据验证
- python-2.7 - 使用 tkinter 中的按钮停止阅读使用流体合成器创建的笔记
- javascript - 使用子级别构建 JSON
- c# - 如何将路由数据从 ActionFilterAttribute 传递到操作方法?
- php - 如何在用户以外的列上调用急切加载?
- ios - 如何在调用 scrollviewdidscroll 委托时以自定义速度为 uiscrollview 滚动设置动画?
- android - 将文件上传到 Firebase Storage RxJava2