在ASP.NET / C#中将文本附加到标签?

时间:2010-12-14 22:55:29

标签: c# asp.net

假设我有一个用户输入一些数据的表单,然后单击“提交”。我有一些验证来检查后面的代码中的字段长度,如果他们忘记了名称我在标签中设置了文本:

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

如果我还有一个名为description的字段,并且这也是空的,我可以向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.";
        }

2 个答案:

答案 0 :(得分:3)

出于性能原因,您可能希望使用StringBuilder构建错误消息,并在构建完输出后设置标签文本。

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

// More validation...

lblErrorCreateSite.Text = error.ToString();

答案 1 :(得分:0)

你自己的答案很好。艾蒂安的改良更加整洁。 您可能还想考虑使用列表作为选项。每次向列表中添加一个新错误都会产生一个错误列表,您最终可以整理这些错误。

另外,如果您使用的是asp webforms或mvc,那么您可以使用内置的验证器来执行维护验证错误列表的任务。除非您需要更多详细信息,Google或SO不会提供您需要的信息,否则我将不在此处提供具体信息。