【发布时间】:2013-06-18 05:05:56
【问题描述】:
我正在尝试在操作中发送电子邮件。但是,该操作总是返回一个空白屏幕。
查看:
<% using(Html.BeginForm("Sendlink", "Home")) %>
<% { %>
<input type="text" id="toemail" value="" />
<input type="submit" value="Send" />
<% } %>
控制器:
public ActionResult Sendlink()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Sendlink(FormCollection formCollection)
{
try
{
string message = Session["link"].ToString();
string toemail = formCollection["toemail"];
MailEngine.Send("mail@mail.com", toemail, "link", message);
return RedirectToAction("CanvasShare");
}
catch
{
}
return null;
}
类邮件引擎:
public static void Send(string from, string to, string subject, string body)
{
try
{
MailMessage mail = new MailMessage(from, to, subject, body);
SmtpClient client = new SmtpClient("smtp.mymail.com");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = false;
client.Send(mail);
}
catch
{
}
}
【问题讨论】:
-
首先我不会使用FormCollection作为参数,而是使用SendLink(string toemail)。查看 ModelBinding 了解更多信息。
-
您的 MailEngine.Send 可能会引发异常,导致您的 SendLink 操作返回 null 而不是返回 af 视图。当心空的 catch 块。
-
你试过调试器吗?
-
我将 Formcollection 更改为字符串 toemail,在我调试时,toemail 为空。
-
您需要将输入的
name属性设置为:"tomail"才能使其可绑定。
标签: c# asp.net-mvc html-email