2011-12-23 35 views
-2

这非常奇怪。检查ASP.NET中的标签内容

基本上,我使用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

您是否在您的页面上关闭了ViewState或在应用程序中全局关闭了ViewState? – 2011-12-23 22:18:33

回答

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(); 
     } 
0

首先,使用String.Format()而不是手动替换字符串片段,如果可能的话。

如何更改标签的文字?您是否在JavaScript的客户端执行此操作? html标签的文本,跨度,粗体和很多标签都不会发送回服务器。如果你想改变某些东西的值,并将它发送回服务器,那必须是一个文本框或者textarea。或者,您将不得不使用手动编码的JavaScript来发送值,并使用自定义服务器端逻辑来获取值。

+0

我正在使用ASP.NET ...标准C#代码来更改标签的文本。不是JavaScript。 – Subby 2011-12-23 23:49:33