2010-11-26 19 views
0

Ich möchte Benutzersteuerelement zum Senden von E-Mail schreiben.asp mvc Benutzersteuerelemente

ich schreibe, dass die Kontrolle:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<form action="" method="post"> 
<div class="box"> 
    <div class="box-header"> 
     Rejestracja</div> 
    <div class="box-content"> 
     <div> 
      Imię 
     </div> 
     <div> 
      <input name="firstname" type="text" /> 
     </div> 
     <div> 
      Nazwisko 
     </div> 
     <div> 
      <input name="lastname" type="text" /> 
     </div> 
     <div> 
      Email 
     </div> 
     <div> 
      <input name="email" type="text" /> 
     </div> 
     <div> 
      Ulica nr domu mieszkania 
     </div> 
     <div> 
      <input name="street" type="text" /> 
     </div> 
    </div> 
    <div class="box-info"> 
     Wypełnij formularz rejestracyjny i dołącz do klubu Oriflame. 
    </div> 
</div> 
<div style="clear: both;"> 
</div> 
</form> 

Und ich habe diese Kontrolle in Masterpage:

<% Html.RenderPartial("Kontakt"); %> 

mit dem Namen Steuerung: kontakt.aspx“und es ist in freigegebenen Ordnern

My Frage ist, wo ich Code mit dem Senden von E-Mail schreiben muss.Welche Aktion, die ich in Steuerformular festgelegt habe.

Dieses Steuerelement war auf allen Sites vorhanden.

Grüße

+0

Hehe =) Polacy =) –

Antwort

0

Sie haben eine Art von Controller zu erstellen, die Formulardaten erhalten. Und Sie können diese E-Mails vom Server senden (vom Controller oder was auch immer Sie gewählt haben, um es zu senden).

1

Das Formular muss an eine URL gesendet werden, die für die Weiterleitung an eine Controller-Aktion eingerichtet wurde. Das könnte die URL der aktuellen Seite oder eine andere URL sein.

In Ihrem Controller möchten Sie eine Methode, die die Formularfelder akzeptiert. Dies kann ein FormCollection-Objekt oder ein stark typisiertes Modell sein, dessen Eigenschaften den Formularnamen zugeordnet werden.

[HttpPost] 
public ActionResult Foo(FormCollection form) 
{ 
    .. use the form collection to construct your email ...   
} 

Wenn Sie eine stark typisierte Ansicht verwenden, anstatt den Aufbau der HTML-Eingänge selbst könnten Sie tun:

<%= Html.TextBoxFor(x => x.FirstName) %> 

Und in Ihrem Controller-Aktion Sie das Modell verwenden können, anstatt die Formcollection:

[HttpPost] 
public ActionResult Foo(KontaktModel details) 
{ 
    .. use the details object to construct your email ...   
} 

ich schlage vor, einen Blick durch die Tutorials auf http://asp.net/mvc nehmen sowie tut das NerdDinner Tutorial.

0

Schreiben Sie Ihre E-Mail-Erstellung und Senden von Code in einer Controller-Methode. Sie würden es dann von diesem Kontakt wie diese Teilansicht aufrufen:

<% using (Html.BeginForm("SendMail", "Mail")) { %> 

Wo SendMail ist die Methode, und Mail ist der Name des Controllers.

public ActionResult SendMail() 
{   
    //build your mail objects and send as needed. 
    return View(); 
}