我使用c#和Web服务创建了一个联系表单。如果用户没有填写他的名字或他的名字是一个号码,我想收到一条警告信息。这是我的C#代码:
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Validation.WebService validate = new Validation.WebService();
bool ismail = validate.isEmail(TextBox2.Text);
if (!ismail)
{ Label1.Text = "your mail is wrong!!"; }
Validation.nameVal valid = new Validation.nameVal();
bool isname = valid.isName(TextBox1.Text);
if (!isname )
{ Label2.Text = "Your name is wrong!!"; }
else if (isname==null)
{ Label2.Text = "Please fill in your name"; }
if (isname && ismail)
{
{ Label1.Text = null; Label2.Text = null;
Label3.Text = "Your message has been send!";}
}
}
}
使用此代码,我有一个空例外。
答案 0 :(得分:2)
从你的评论中看出异常就行了:
bool isname = valid.isName(TextBox1.Text);
然后valid
或TextBox1
为空。鉴于之前的行是:
Validation.nameVal valid = new Validation.nameVal();
这表明它是后者。
在取消引用之前,您需要检查TextBox1
是否为空,或者确保它已正确初始化。
答案 1 :(得分:1)
尝试将您设置为Label1.Text
和Label2.Text
的代码的最后一位更改为null:
Label1.Text = String.Empty; Label2.Text = String.Empty;
答案 2 :(得分:1)
我猜测也许验证失败了,或者,标签文本设置为null可能导致问题。下面的代码应该有帮助
Validation.WebService validate = new Validation.WebService();
bool ismail = (!string.IsNullOrEmpty(Textbox2.Text)) && validate.isEmail(TextBox2.Text);
if (!ismail)
{
Label1.Text = "your mail is wrong!!";
}
Validation.nameVal valid = new Validation.nameVal();
bool isname = (!string.IsNullOrEmpty(Textbox1.Text)) && valid.isName(TextBox1.Text);
if (!isname)
{
Label2.Text = "Your name is wrong!!";
}
else if (string.IsNullOrEmpty(Textbox1.Text))
{
Label2.Text = "Please fill in your name";
}
if (isname && ismail)
{
{
Label1.Text = "";
Label2.Text = "";
Label3.Text = "Your message has been send!";
}
}
}