Контактная форма не работает, "Значение не может быть нулевым. Имя параметра: адрес" MVC5 - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть контактная форма, и я понятия не имею, что происходит не так.

Это код для модели, которую я написал:

public class Contact
{
    public string FromName { get; set; } 
    public string FromEmail { get; set; } 
    public string Subject { get; set; } 
    public string Message { get; set; } 
}

Контроллер, который я создал с только что прочитанным/ write actions:

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

И это ошибка Iget:

Значение не может быть нулевым.Имя параметра: адрес

Я прочитал, что это связано с учетными данными.Но это правильные учетные данные для моей учетной записи.

1 Ответ

0 голосов
/ 28 сентября 2018

Проблема была исправлена ​​после замены атрибута 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-for был введен в ASP.NET Core MVC и недоступен в MVC5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...