2010-11-26 70 views
0

我想寫用戶控件發送電子郵件。asp mvc用戶控件

我寫的控制:

<%@ 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> 

,我把在母版這個控制:

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

控制命名爲:kontakt.aspx」,它是共享的文件夾中

我問題是我必須用發送電子郵件的方式編寫代碼。我在myst中設置了什麼操作控件表單。這個控件是在所有網站上。

Regards

+0

Hehe =)Polacy =) – 2010-11-26 21:51:36

回答

0

您必須創建某種控制器來接收表單數據。您可以從服務器發送這些電子郵件(從控制器或您選擇發送它的任何內容)。

1

表單需要發佈到設置爲路由到控制器操作的URL。這可能是當前網頁的網址或其他網址。

在你的控制器中你想要一個接受表單域的方法。這可以是FormCollection對象或屬性映射到表單名稱的強類型模型。

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

如果您使用的是強類型的視圖,而不是建立自己的HTML的輸入,你可以這樣做:

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

而在你的控制器動作,您可以使用該模型,而不是的FormCollection:

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

我建議採取通過在http://asp.net/mvc教程一看以及做NerdDinner教程。

0

寫你的電子郵件創建和發送代碼在控制器的方法。然後,您會從這樣這個KONTAKT局部視圖稱之爲:

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

哪裏SendMail是方法,而Mail是控制器的名字。

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