簡體   English   中英

與我們聯系表格ASP.net MVC

[英]Contact Us Form ASP.net MVC

我用以下代碼創建了聯系我們表格:

ConatModels.cs

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace DemoVer1.Models
{
    public class ContactModels
    {
       [Required(ErrorMessage = "First Name is required")] 

        public string FirstName { get; set; }
        public string Supject { get; set; }
        [Required]

        public string Email { get; set; }
        [Required]
        public string Message { get; set; } 

    }
}

HomeController.cs:

   using DemoVer1.Models;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Mail;
    using System.Text;
    using System.Web;
    using System.Web.Mvc;

    namespace DemoVer1.Controllers
    {
        public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }

            public ActionResult About()
            {
                ViewBag.Message = "Your application description page.";

                return View();
            }

            public ActionResult Contact(ContactModels c)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        MailMessage msg = new MailMessage();
                        SmtpClient smtp = new SmtpClient("smtp.gmail.com");
                        MailAddress from = new MailAddress(c.Email.ToString());
                        StringBuilder sb = new StringBuilder();
                        msg.From = new MailAddress("sender@gmail.com");// replace it with sender email address

                        msg.To.Add("recipient@gmail.com");// replace ti with recipient email address
                        msg.Subject = "Contact Us";
                        smtp.EnableSsl = true;

                        smtp.Credentials = new System.Net.NetworkCredential("sender@gmail.com", " email password");
                        smtp.Port = 587;
                        sb.Append("First name: " + c.FirstName);
                        sb.Append(Environment.NewLine);
                        sb.Append("Last name: " + c.Supject);
                        sb.Append(Environment.NewLine);
                        sb.Append("Email: " + c.Email);
                        sb.Append(Environment.NewLine);
                        sb.Append("Comments: " + c.Message);
                        msg.Body = sb.ToString();
                        smtp.Send(msg);
                        msg.Dispose();
                        return View("Success");
                    }
                    catch (Exception)
                    {
                        return View("Error");
                    }
                }
                return View();
            }
        }
    }

Contact.cshtml

  @model DemoVer1.Models.ContactModels
    @{
        ViewBag.Title = "Contact";
    }

    <h1>contact us</h1>
    @using (Html.BeginForm())
    {

        @Html.ValidationSummary(true)
        <div class="row">
            @Html.LabelFor(model => model.FirstName, "First Name:")
            @Html.EditorFor(model => model.FirstName)
            @Html.ValidationMessageFor(model => model.FirstName)

        </div>
        <div class="row">
            @Html.LabelFor(model => model.Supject, "Last Name:")
            @Html.EditorFor(model => model.Supject)
        </div>
        <div class="row">
            @Html.LabelFor(model => model.Email, "Email:")
            @Html.EditorFor(model => model.Email)
        </div>
        <div class="row">
            @Html.LabelFor(model => model.Message, "Comments:")
            @Html.TextAreaFor(model => model.Message)
        </div>
        <div class="row">
            <input type="submit" value="submit" />
            <input type="reset" value="reset" />
        </div>

    } 

如果我運行它,會出現錯誤!我不知道這是什么問題。 我感謝您的幫助。 提前致謝 :)

使用:

using System;
using System.Net;
using System.Net.Mail;
using System.Threading.Tasks;
using System.Web.Mvc;
using ProjectName.Models;

控制器:

[HttpPost]
public async Task<ActionResult> Contact(FormCollection C)
{
      string Name = C["name"];
      string Email = C["email"];
      string Message = C["message"];
      if (ModelState.IsValid)
      {
          var body = "<p>Email From: {0} ({1})</p><p>Message:</p><p>{2}</p>";
          var message = new MailMessage();
          message.To.Add(new MailAddress("yourmail@yahoo.com"));  // replace with valid value 
          message.From = new MailAddress("yourmail@Domain.com");  // replace with valid value
          message.Subject = "Your email subject";
          message.Body = string.Format(body, Name, Email, Message);
          message.IsBodyHtml = true;
          using (var smtp = new SmtpClient())
          {
              var credential = new NetworkCredential
                  {
                        UserName = "yourmail@Domain.com",  // replace with valid value
                        Password = "********"  // replace with valid value
                  };
                  smtp.Credentials = credential;
                  smtp.Host = "webmail.Domain.com";//address webmail
                  smtp.Port = 587;
                  smtp.EnableSsl = false;
                  await smtp.SendMailAsync(message);
                  return RedirectToAction("Index");
              }
        }
              return View();
}

web.config的設置:

<system.net>
  <mailSettings>
    <smtp from="yourmail@Domain.com">
      <network host="webmail.Domain.com" 
               port="587" 
               userName="yourmail@Domain.com"
               password="password" 
               enableSsl="false" />
    </smtp>
  </mailSettings>
</system.net>

視圖:

@using (Html.BeginForm("Contact", "Home", FormMethod.Post, new { @class = "contact-list", id = "contacts_form", role = "form", target = "_blank" }))
{
     @Html.TextBox("name", null, new { @class = "form_item", @required = "required", placeholder = "Name", type = "text" })
     @Html.TextBox("email", null, new { @class = "form_item", @required = "required", placeholder = "E-mail", type = "email" })
     @Html.TextBox("message", null, new { @class = "form_item", @required = "required", placeholder = "Message", type = "text" })
     <input type="submit" value="subscribe" />
  } 

由於表單是郵政表單,因此您需要這樣編寫操作:

[HttpPost]
public ActionResult Contact(ContactModels c)
            {
//your code
}

正如它評論的那樣,您還需要添加一個[Get]操作:

[HttpGet]
public ActionResult Contact()
{
    //your code
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM