[英]Contact form doesn't work, “Value cannot be null. Parameter name: address” MVC5
我有聯系表,對出什么問題一無所知。
這是我編寫的模型的代碼:
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中,要么太久了):
這是我得到的錯誤:
值不能為空。 參數名稱:地址
我讀過它與憑據有關。 但是這些是我帳戶的正確憑證。
在輸入控件上將asp-for
屬性替換asp-for
name
屬性后,問題已解決
<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.NET Core MVC中引入了asp-for標記幫助器,而MVC5中不提供
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.