2010-12-14 44 views
2

可以說我有一個表單,用戶輸入一些數據,然後點擊提交。我有一些驗證檢查字段長度在後面的代碼,如果他們忘了名字我設置一個標籤中的文本:追加文本到ASP.NET/C#中的標籤?

 if (siteName.Length == 0) 
     { 
      lblErrorCreateSite.Text = "A Site Name is required.<br/>"; 
     } 

如果我也有一個字段稱爲說明,這也是空的,我可以追加lblErrorCreateSite的錯誤消息還是我必須創建另一個標籤?

 if (siteDescription.Length == 0) 
     { 
      lblErrorCreateSite. // if both name and description is missing add some additional text to the label 
     } 

我只是檢查,看看是否有一個更簡單的辦法,而不是有很多的if語句(如果這個那個......)

在此先感謝。

編輯: 我才意識到我可以做

 if (siteName.Length == 0) 
     { 
      lblErrorCreateSite.Text = "A Site Name is required.<br/>"; 
     } 
     if (siteDescription.Length == 0) 
     { 
      lblErrorCreateSite.Text = lblErrorCreateSite.Text + "A description is required."; 
     } 

+4

您還可以使用+ = ... – 2010-12-14 23:00:50

+1

投票結束,因爲OP回答了他自己的問題。 – tster 2010-12-14 23:02:31

+0

謝謝Etienne,我忘了+ =(看起來好多了) – Peter 2010-12-14 23:07:10

回答

0

你自己的回答很好。艾蒂安的補漆更加整潔。 您可能還想考慮使用列表作爲選項。每次向列表中添加一個新錯誤都會導致錯誤列表,最終您可以更加整齊地進行格式化。

另外,如果您使用asp webforms或mvc,那麼您可以使用內置的驗證程序,它將執行維護您的驗證錯誤列表的任務。我不會在此提供具體信息,除非您需要更多詳細信息,Google或SO不會提供您需要的信息。

3

由於性能方面的原因,您可能希望使用StringBuilder構建錯誤消息,並在完成構建輸出後設置標籤文本。

var error = new StringBuilder(); 
if(siteName.Length == 0) 
{ 
    error.Append("A Site Name is required.<br/>"); 
} 

// More validation... 

lblErrorCreateSite.Text = error.ToString();