2010-11-26 79 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(); 
}