我有一个联系表格,我不知道出了什么问题。
这是我编写的模型的代码:
public class Contact
{
public string FromName { get; set; }
public string FromEmail { get; set; }
public string Subject { get; set; }
public string Message { get; set; }
}
我只用读/写操作创建的控制器:
using System.Net.Mail;
using System.Web;
using System.Web.Mvc;
using GJL.Models;
namespace GJL.Controllers
{
public class ContactController : Controller
{
// GET: Contact
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(Contact vm)
{
if (ModelState.IsValid)
{
try
{
MailMessage msz = new MailMessage();
msz.From = new MailAddress(vm.FromEmail);//Email which you are getting
//from contact us page
msz.To.Add("roykooiman67@gmail.com");//Where mail will be sent
msz.Subject = vm.Subject;
msz.Body = vm.Message;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 465;
smtp.Credentials = new System.Net.NetworkCredential
("roykooiman67@gmail.com", "PasswordGmail");
smtp.EnableSsl = true;
smtp.Send(msz);
ModelState.Clear();
ViewBag.Message = "Bedankt voor je bericht!";
}
catch (Exception ex)
{
ModelState.Clear();
ViewBag.Message = $" Er ging iets mis: {ex.Message}";
}
}
return View();
}
public ActionResult Error()
{
return View();
}
}
}
我的观点(在 pastebin 中要么太长了(:
https://pastebin.com/LvtSzY4V
这是我得到的错误:
值不能为空。参数名称:地址
我已经读到它必须与凭据有关。但这些是我帐户的正确凭据。
在输入控件上将属性替换为name
属性后asp-for
问题已修复,
<input name="FromName" class="form-control" />
<input name="FromEmail" class="form-control" />
<input name="Subject" class="form-control" />
<textarea rows="5" cols="15" name="Message" class="form-control"></textarea>
ASP-for 标记帮助程序是在核心 MVC 中引入 ASP.NET 但在 MVC5 中不可用