Как исправить мое нулевое исключение? - PullRequest
0 голосов
/ 07 февраля 2011

Я создал контактную форму, используя c # и веб-сервисы. Я хотел бы получить предупреждающее сообщение, если пользователь не заполнил свое имя или когда его имя - число. Это мой код 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!";}
            }
        }
}

С этим кодом у меня пустое исключение.

Ответы [ 3 ]

2 голосов
/ 07 февраля 2011

Из вашего комментария, что исключение находится на линии:

bool isname = valid.isName(TextBox1.Text);

тогда либо valid, либо TextBox1 равно нулю. Учитывая, что строка перед:

Validation.nameVal valid = new Validation.nameVal();

это указывает на то, что это последнее.

Вам нужно проверить, что TextBox1 не равно нулю, перед разыменованием или убедиться, что он инициализирован правильно.

1 голос
/ 07 февраля 2011

Я предполагаю, что, возможно, проверка не удалась, или, возможно, установка текста метки на ноль вызывает проблемы. Код ниже должен помочь

  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!";
        }
    }
}
1 голос
/ 07 февраля 2011

Попробуйте изменить последний бит кода, для которого вы установили Label1.Text и Label2.Text в null:

Label1.Text = String.Empty; Label2.Text = String.Empty;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...