2011-12-23 81 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