我正在使用Nuget的ASP.Net MVC 4和MVCMailer 4.0。当我创建一条消息并将其发送到脚手架欢迎消息时,一切正常,我能够发送电子邮件就好了(唯一的就是它的纯文本,因为我有html)
当我使用“联系”表单发送消息时出现问题。首先让我告诉你我拥有什么以及我如何使用它:
/*UserMailer.cs*/
public virtual MvcMailMessage ContactForm(MailMessage mailmessage)
{
ViewBag.Name = mailmessage.Name;
ViewBag.Body = mailmessage.MessageBody;
return Populate(x =>
{
x.Subject = "Scheduler) " + mailmessage.Subject;
x.ViewName = "Contact Form";
x.To.Add("Hiva@Varyan.com");
});
}
现在进入视图
@*ContactForm.cshtml*@
<h2>ContactForm</h2>
<strong>Name: </strong> @ViewBag.Name <br />
<strong>Message: </strong> @ViewBag.Body
最后,Contact Controller操作实例化邮件程序并发送邮件
//ContactController.cs
namespace Scheduler.Controllers
{
public class ContactController : Controller
{
//
// GET: /Contact/
private IUserMailer _userMailer = new UserMailer();
public IUserMailer UserMailer
{
get { return _userMailer; }
set { _userMailer = value; }
}
public ActionResult Index()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(MailMessage _mailMessage)
{
UserMailer.ContactForm(_mailMessage).Send();
return View();
}
}
}
为了完整性我也将包括我的模型
//MailMessage.cs
namespace Scheduler.Model
{
public class MailMessage
{
public string Name { get; set; }
public string EmailAddress { get; set; }
public string Subject { get; set; }
public string MessageBody { get; set; }
}
}
好的,所以我遇到了多个问题:
我刚开始学习ASP.Net MVC,如果有任何关于如何正确实现上述内容的指示,将不胜感激。
答案 0 :(得分:2)
对不起,我错误地在x.ViewName
中放置了一个空格,因为它真的很晚才找到它。