Контактная форма ASP.net - PullRequest
0 голосов
/ 25 марта 2010

Я впервые создаю объект в ASP.NET. Я изучаю учебник здесь

Это ошибка:

Line 23:     output += "<p>Groupe: " + Request.Form["c_Groupe"].ToString() + ".</p>";
Line 24:     output += "<p>Numéro de téléphone: " + Request.Form["c_Tel"].ToString() + ".</p>";
Line 25:     output += "<p>J'aimerais être bénévole pour: " + Request.Form["La bibliothèque","Aide en classe","Aide pour les dîners pizza","Aide aux devoirs après l’école","Aménagement paysager (fleurs, arbustes à tailler…)","Photo scolaire","Accompagner les élèves lors des sorties", "Venir parler de votre métier dans une classe ou monter un atelier "].ToString() + ".</p>";
Line 26:     output += "<p>Autres: " + Request.Form["c_Autre"].ToString() + ".</p>";
Line 27:

Ответы [ 6 ]

2 голосов
/ 25 марта 2010

Помещенный

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

В вашем файле web.config мы видим ошибку, но это, вероятно, связано с

CodeFile="contact-form.aspx.cs" Inherits="_Emailer"

Bit. Либо отсутствует файл contact-form.aspx.cs, либо частичный класс в выделенном фрагменте имеет другое имя, чем _Emailer.

Ах, похоже, вы создали проект веб-приложения. Вам нужно сначала создать проект, а затем загрузить все файлы ftp на ваш веб-сервер, включая папку bin, или более простой альтернативой является использование опции публикации Visual Studios, которая запросит у вас данные ftp и сделает все остальное за вас

1 голос
/ 25 марта 2010

Вы кодируете это для asp.net 1.1 или asp.net 2.0?

Синтаксис выглядит как для asp.net 2.0, но ваш веб-сервер работает в режиме 1.1.

для asp.net 1.1 следующая строка:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="contact-form.aspx.cs" Inherits="_Emailer" %>

должно быть:

<%@ Language="C#" Inherits="_Emailer" src="contact-form.aspx.cs" %>

Если у вас есть доступ к веб-серверу, просто переключите версию .net Framework на v2.0, и все будет в порядке, не внося никаких изменений. Если нет, дайте мне знать.


Я переписал ваш код для asp.net 1.1 .... Я делаю это по памяти, поэтому могут быть ошибки ..

using System;
using System.Text;
using System.Web.Mail;

public class _Emailer : System.Web.UI.Page 
{
 protected void Page_Load(object sender, System.EventArgs e)
 {
  if(IsPostBack)
  {
   try
   {

    string output = "";

    MailMessage mail = new MailMessage();
    string hostAddress = "aaa.bbb.ccc.ddd";

    string message = Request.Form["c_Message"].ToString();
    message = message.Replace(Environment.NewLine, "<br />");

    StringBuilder sb = new StringBuilder();
    sb.AppendFormat("<p>Nom du Parent: {0}.</p>", Request.Form["c_Name"].ToString());
    sb.AppendFormat("<p>Nom de votre enfant: {0}.</p>",  Request.Form["c_Enfant"].ToString());
    sb.AppendFormat("<p>Groupe: {0}.</p>", Request.Form["c_Groupe"].ToString());
    sb.AppendFormat("<p>Numéro de téléphone: {0}.</p>", Request.Form["c_Tel"].ToString());
    sb.AppendFormat("<p>J'aimerais être bénévole pour: {0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}.</p>",
        Request.Form["La bibliothèque"].ToString(),
        Request.Form["Aide en classe"].ToString(),
        Request.Form["Aide pour les dîners pizza"].ToString(),
        Request.Form["Aide aux devoirs après l’école"].ToString(),
        Request.Form["Aménagement paysager (fleurs, arbustes à tailler…)"].ToString(),
        Request.Form["Photo scolaire"].ToString(),
        Request.Form["Accompagner les élèves lors des sorties"].ToString(),
        Request.Form["Venir parler de votre m&eacute;tier dans une classe ou monter un atelier"].ToString()
    );  
    sb.AppendFormat("<p>Autres: {0}.</p>", Request.Form["c_Autre"].ToString());

    mail.Subject = "New e-mail.";
    mail.From = "marcfavreau@cdsm.qc.ca";
    mail.To = "toaddress@domain.com";
    mail.Body = sb.ToString();

    mail.BodyFormat = MailFormat.Html

    SmtpMail.SmtpServer = hostAddress;
    SmtpMail.Send(mail);

    lblOutCome.Text = "E-mail sent successfully.";
   }

   catch (Exception err)
   {
    lblOutCome.Text = "There was an exception whilst sending the e-mail: " + err.ToString() + ".";
   }
  }
 }
}
1 голос
/ 25 марта 2010

Разве вы не пропустили runat = "server" в объявлении формы?

<form id="form1" runat="server" enctype="multipart/form-data" method="post">

Кроме того, вы можете получать ошибки, если пространство имен неправильное, я видел, как это произошло, например, после того, как кто-то переименовал решение и забыл изменить пространство имен во всех файлах.

В противном случае, как говорили другие, видение фактической ошибки поможет лоту

1 голос
/ 25 марта 2010

Я думаю, что ваш ярлык, который находится вне тега формы, должен быть внутри него, см. Ниже.

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<asp:label id="lblOutcome" runat="server" />
1 голос
/ 25 марта 2010

обновите файл web.config, чтобы отобразить ошибки

<customErrors mode="Off" />

Удаление заголовка, вероятно, не лучшее решение, поэтому я думаю, что ошибка на вашей странице contact-form.aspx.cs. РЕАЛЬНОЕ исключение должно отображаться после добавления вышеуказанного в файл web.config.

0 голосов
/ 25 марта 2010

Похоже, что этот пример был собран с использованием .NET Framework 1.1. Это версия платформы, которую вы установили для этого приложения в IIS? Возможно, вы захотите проверить настройки IIS и убедиться, что версия платформы установлена ​​правильно.

Надеюсь, это поможет!

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