这非常奇怪。
基本上,我正在使用ASP.NET。我想要的是从标签中获取.Text值。
最初,标签实际上是完全空的。但是,经过一些互动和点击等后,标签会发生变化。
现在....我想简单地访问该特定标签的内容......但是...... ASP.NET认为它的内容仍然是空的。
作为测试,我将标签的内容更改为明显的类似“lol”的内容。
然后我再次做了这个程序。现在....这次,在所有互动和点击等之后检查内容的结果竟然是“大声笑”......
这意味着ASP没有跟踪当前的变化。它只是记住初始值是什么。
我检查内容的原因是因为我希望发送电子邮件。以下是我的代码:
MailMessage email = new MailMessage();
email.Subject = "****";
email.To.Add(txtEmailTo.Text);
email.From = new MailAddress("****");
email.IsBodyHtml = true;
string emailBody = "<h2>Journey Details</h2><br><strong>From</strong>: %From%<br><strong>To</strong>: %To%<br><strong>Price</strong>: %Price%<br><hr><br>Kind Regards, <br><br>";
String newBody = emailBody;
newBody.Replace("%From%", lblResultsFrom.Text);
email.Body = newBody;
try
{
SMTPServer.Send(email);
}
catch (Exception ex)
{
lblError.Text = ex.ToString();
}
答案 0 :(得分:0)
首先,如果可能的话,使用String.Format()而不是手动替换字符串片段。
如何更改标签的文字?你是在客户端用JavaScript做的吗? html标签,span,粗体和大量标签的文本不会发送回服务器。如果要更改某些内容的值,并将其发送回服务器,则必须是文本框或textarea。或者您必须使用手动编码的JavaScript来发送值,并使用自定义服务器端逻辑来获取值。
答案 1 :(得分:0)
我设法修复了我的代码。以下作品:
var SMTPServer = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential("..", "..."),
};
MailMessage email = new MailMessage();
email.Subject = "...";
email.To.Add(txtEmailTo.Text);
email.From = new MailAddress("..");
email.IsBodyHtml = true;
string emailBody = "...";
String newBody = emailBody;
email.Body = newBody;
try
{
SMTPServer.Send(email);
}
catch (Exception ex)
{
lblError.Text = ex.ToString();
}