假设我有一个用户输入一些数据的表单,然后单击“提交”。我有一些验证来检查后面的代码中的字段长度,如果他们忘记了名称我在标签中设置了文本:
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.";
}
答案 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不会提供您需要的信息,否则我将不在此处提供具体信息。