MVC建立电子邮件正文

时间:2010-08-13 23:58:19

标签: c# asp.net-mvc

我来自网络表单,对MVC来说还是一个新手。我想创建一个联系表单,只需通过电子邮件向我发送联系信息,

e.g:

  • 名字
  • 电子邮件
  • 年龄
  • 公司

我需要收集大约十几个不同的信息领域。

在网络表单中,只需拨打TextBox.Text

即可轻松构建电子邮件正文

除了必须传递一个长屁股参数之外,构建电子邮件正文的最佳方法是什么:

[HttpPost]
Public ActionResult Contact(string firstName, string lastName, string Email, int Age, string Company, ...)
{
    // ...
}

提前谢谢。

4 个答案:

答案 0 :(得分:3)

[HttpPost]
Public ActionResult Contact(EmailMessage message)
{
    // ...
}

,您的Model对象如下所示:

public class EmailMessage
{
     public string FirstName { get; set; }
     public string LastName { get; set; }
     public string Email { get; set; }
     ....
}

如果您的表单元素与EmailMessage模型匹配,您可以自动将其绑定到您的操作方法

<% using (Html.BeginForm()) { %>
    First Name: <input type="text" id="FirstName" />
    Last Name: <input type="text" id="LastName" />
    Email <input type="text" id="Email" />
    ....
<% } %>

您还可以通过使用[DisplayName]和其他有用的MVC属性修饰模型属性来制作这个真棒。

public class EmailMessage
{
     [DisplayName("First Name")]
     public string FirstName { get; set; }
     public string LastName { get; set; }
     public string Email { get; set; }
     ....
}

<% using (Html.BeginForm()) { %>
    <%: LabelFor(m => m.FirstName) %><%: EditorFor(m => m.FirstName) %>
    <%: LabelFor(m => m.LastName) %><%: EditorFor(m => m.LastName) %>
    <%: LabelFor(m => m.Email) %><%: EditorFor(m => m.Email) %>
<% } %>

答案 1 :(得分:1)

使用强类型视图,并使用HTML帮助程序方法构建表单。您可以在操作方法的模型中使用表单中的数据。

答案 2 :(得分:0)

替代方法(MVC 1)是接受FormCollection对象并从中读取值,这可能更容易应用于您已经获得的值。

但是我会按照ThatSteveGuy的建议去做正确的MVC 2。

答案 3 :(得分:0)

您可以考虑使用MvcMailer NuGet - 它将大大简化您的生活。请参阅http://nuget.org/Packages/Search?packageType=Packages&searchCategory=All+Categories&searchTerm=mvcmailer处的NuGet包和https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide

处的项目文档

希望它有所帮助!