2012-03-09 4 views
0

Possible Duplicate:
What is a NullReferenceException in .NET?Почему я получаю ошибку ссылки на объект?

Проще говоря, у меня есть форма, что, когда пользователь отправляет сообщение электронной почты отправляется им поблагодарить их за интерес, и еще письмо идет к админам говоря человек подписался. Первый MailMessage (msgMail) отправляет штраф, поэтому я закодировал второй MailMessage (msgMail2) точно так же, но просто изменил текст сообщения. Заранее спасибо!

Когда я их обоих на странице я получаю:

Object reference not set to an instance of an object.

Источник ошибки: (EDIT: чтобы держать его кратким я только положить источник ошибки, который указывает на строку 285)

Line 283:  msgMail2.Subject = "ZProgramsMatch Insurance Quote Request"; 
Line 284: 
Line 285:  msgMail2.Body = "<!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>" + 
Line 286:  "<html xmlns=&quot;http://www.w3.org/1999/xhtml&quot >" + 
Line 287:  "<head><title>Untitled Page</title></head><body>" + 

Ниже приведен код для двух MailMessages: (Я удалить из основного текста, чтобы держать его коротким)

MailMessage msgMail = new MailMessage("[email protected]", txtEmail.Text); 

    msgMail.IsBodyHtml = true; 
    msgMail.Subject = "..."; 

    msgMail.Body = "<!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>" + 
    "<html xmlns=&quot;http://www.w3.org/1999/xhtml&quot >" + 

    "<head><title>Untitled Page</title></head><body>"; 
    if (sImage.Length > 5) 
    { 
     msgMail.Body += "<img src='" + sImage + "' />"; 
    } 
    msgMail.Body += "..."; 


    SmtpClient smtp = new SmtpClient(); 
    try 
    { 
     smtp.Send(msgMail); 
    } 
    catch 
    { 
    } 
    msgMail = null; 

    MailMessage msgMail2 = new MailMessage("...", "..."); 

    msgMail2.IsBodyHtml = true; 
    msgMail2.Subject = "..."; 

    msgMail2.Body = "<!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>" + 
    "<html xmlns=&quot;http://www.w3.org/1999/xhtml&quot >" + 
    "<head><title>Untitled Page</title></head><body>" +    
    "Email: " + Session["Email"].ToString() + "<br />" +    
    "Name: " + txtFirstName.Text + " " + txtLastName.Text + "<br />" + 
    "Title: " + txtTitle.Text + "<br />" + 
    "Company: " + txtCompany.Text + "<br />" + 
    "Address 1: " + txtAddress1.Text + "<br />" + 
    "Address 2: " + txtAddress2.Text + "<br />" + 
    "City: " + txtCity.Text + "<br />" + 
    "State: " + ddlState.SelectedValue + "<br />" + 
    "Zip Code: " + txtZip.Text + "<br />" + 
    "Phone Number: (" + txtPhoneArea.Text + ")" + txtPhonePre.Text + "." + txtPhoneNo.Text + "<br />" + 
    "Cell Number: (" + txtCellArea.Text + ")" + txtCellPre.Text + "." + txtCellNo.Text + "<br />" + 
    "Preferred Contact Method: " + ddlContractType.SelectedValue + "<br />" + 
    "Best Time to Contact: " + ddlContactTime.SelectedValue + "<br />" + 
    "Name of Insured: " + txtNameOfInsured.Text + "<br />" + 
    "Additional Info: " + txtComments.Text + "<br />" + 
    "</body></html>"; 

    smtp.Send(msgMail2); 
+0

Кстати, ваш HTML неверен; вы не должны использовать '"'. – SLaks

+0

Я унаследовал этот сайт от кого-то еще, поэтому я пытаюсь пробиться через это. Что было бы лучше использовать? – Peter

+0

'' '. – SLaks

ответ

1

Наиболее очевидным нарушителем является Session["Email"] (в строке "Email: " + Session["Email"].ToString() + "<br />" +). Вы уверены, что в данных сеанса есть значение, связанное с этим ключом?

В противном случае это может быть любые элементы управления, к которым вы обращаетесь в этом заявлении, хотя по моему опыту это менее вероятно.

+0

Yahtzee! Благодаря! – Peter

1

это что-то в строчке тела. Попробуйте сохранить всю строку тела в переменной и записать ее на консоль или что-то в этом роде. Затем установите тело в переменную.

Редактирование: или для быстрой проверки просто установите тело на пустую строку. Если это сработает, это ваша проблема.

+0

Мне понравилось, что вы сказали, и это просто что-то в строчке! Спасибо. – Peter

+0

В последней строке вашего текста тела нет согласованной пары котировок - это просто опечатка в вопросе, или это проблема? – Ray

+0

Где вы ищете? Это может быть проблемой, но я этого не вижу. Благодарю. – Peter

Смежные вопросы