联系表格不发送正文和/或主题

时间:2017-09-29 02:33:52

标签: asp.net-mvc forms smtp

所以我一直在制作一个简单的联系表格,并且已经编写了代码,然后它发送了表格,我收到了它,但它是空白的,没有主题,没有正文。

在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属性具有相同的名称,并且由于某种原因发送空电子邮件。 希望有人可以解释一下!

1 个答案:

答案 0 :(得分:0)

默认控制器中的所有操作都是GET方法。因此,您必须将HTTP Web方法指定为POST

[HttpPost]
public ActionResult Send(Contact c)