所以我一直在制作一个简单的联系表格,并且已经编写了代码,然后它发送了表格,我收到了它,但它是空白的,没有主题,没有正文。
在stackoverlow上回顾类似的问题我发现了很多php解决方案,但没有asp.net会对我的场景有所帮助。
这是控制器:
public ActionResult Send(Contact c)
{
if (ModelState.IsValid)
{
try
{
MailAddress sender = new MailAddress(c.Email, c.Name);
MailAddress recipient = new MailAddress("mymail@hotmail.com");
MailMessage Message = new MailMessage();
Message.From = sender;
Message.To.Add(recipient);
Message.Subject = c.Subject;
Message.Body = c.Msg;
Message.IsBodyHtml = true;
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.EnableSsl = true;
client.Port = 587;
client.Credentials = new NetworkCredential("gmail@gmail.com", "password");
client.Send(Message);
return Redirect("/Success.html");
}
catch (Exception)
{
return Redirect("/Error.html");
}
}
else
{
return Redirect("www.google.com");
}
}
HTML:
<body>
<form action="/Mail/Send" method="post">
<div id="glavni">
<p>
<label for="TextName">Name:</label>
<input id="TextName" type="text" name="Name" required autofocus />
</p>
<p>
<label for="TextSubject">Subject:</label>
<input id="TextSubject" type="text" name="Subject" required />
</p>
<p>
<label for="TextMail">Email:</label>
<input id="TextMail" type="email" name="Email" required />
</p>
<p>
<label for="TextMsg">Unesite Poruku:</label>
<textarea id="TextMsg" type="text" name="Msg" rows="12" cols="20" ></textarea>
</p>
<p>
<button type="submit">Send</button>
</p>
</div>
</form>
MODEL:
public class Contact
{
public string Name { get; set; }
public string Email { get; set; }
public string Subject { get; set; }
public string Msg {get; set;}
}
Contact Models类道具与html name
属性具有相同的名称,并且由于某种原因发送空电子邮件。
希望有人可以解释一下!
答案 0 :(得分:0)
默认控制器中的所有操作都是GET方法。因此,您必须将HTTP Web方法指定为POST
[HttpPost]
public ActionResult Send(Contact c)