C# 在asp.net c中使用foreach循环使用html li标记显示错误#

C# 在asp.net c中使用foreach循环使用html li标记显示错误#,c#,asp.net,loops,foreach,C#,Asp.net,Loops,Foreach,下面是示例代码 string[] errors = new string[2]; if (txt_Username.Text.Trim() != null) { con.Open(); int temp = 0; //fetch username from db if (temp != 0) { errors[0] = "user

下面是示例代码

string[] errors = new string[2];
if (txt_Username.Text.Trim() != null)
        {
            con.Open();
            int temp = 0;
           //fetch username from db

            if (temp != 0)
            {
                errors[0] = "username exists";
            }
        }
if (txt_email.Text.Trim() != null)
        {
            con.Open();
            int emailtemp = 0;

            //fetch email from db
            if (temp != 0)
            {
                errors[0] = "email exists";
            }
        }
if (errors == null || errors.Length == 0)
        {
//insert into db
}
   else{
lblES.Text = "<div class='error'>Errors<br /><hr ><ul></div>";
            foreach (string er in errors)
            {
                lblES.Text += "<li>" + er + "</li>";
            }
            lblES.Text += "</ul>";
}
string[]errors=新字符串[2];
如果(txt_Username.Text.Trim()!=null)
{
con.Open();
内部温度=0;
//从数据库获取用户名
如果(温度!=0)
{
错误[0]=“用户名存在”;
}
}
如果(txt_email.Text.Trim()!=null)
{
con.Open();
int=0;
//从数据库获取电子邮件
如果(温度!=0)
{
错误[0]=“电子邮件存在”;
}
}
if(errors==null | | errors.Length==0)
{
//插入数据库
}
否则{
lblES.Text=“错误

    ”; foreach(错误中的字符串er) { lblES.Text+=“
  • ”+er+“
  • ”; } lblES.Text+=“
”; }
没有显示任何错误!!!代码有什么问题


有时只显示项目符号而不显示错误消息

您的代码有两个错误:

您正在数组中的位置
0
存储这两个错误:
errors[0]=…
。我建议改为使用列表,并根据需要添加错误:

var errors = new List<string>();     
// ..    
errors.Add("username exists");

此外,在追加
  • 元素并结束
      元素之前,您将关闭
      元素。从当前位置删除结束div标记(
      ),并将其追加到末尾。

      错误不会为null,因为您在代码中首先将其初始化为长度为2的数组。这意味着长度也不会为零。我也使用了arraylist,但仍然没有显示任何内容!!!。。。ArrayList errors=新建ArrayList();if(..){errors.Add(“username exists”);}if(errors.Count>1){foreach(errors中的字符串er){lblES.Text=lblES.Text+e;}
      if (errors.Any()) { ... }