Моя форма не обрабатывается и не отправляется, есть ли что-то с моим кодом, когда я нажимаю кнопку Отправить, я хочу, чтобы форма обрабатывалась и давала мне уведомление, как отправленное сообщение.
Когда я нажимаю "отправить", страница "остаться на той же странице" не обрабатывается и не отправляется. Я хочу, чтобы страница отправила форму по электронной почте и дала мне уведомление, подобное отправленному сообщению.
< @using (Html.BeginForm("Feedback", "Home", FormMethod.Post)) { @Html.ValidationSummary() @Html.AntiForgeryToken() @Html.ValidationSummary("", new {@class = "text-danger"}) <div class="form-group"> @Html.LabelFor(m => m.Name, new {@class = "col-md-2 control-label"}) <div class="col-md-10"> @Html.TextBoxFor(m => m.Name, new {@class = "form-control", placeholder = "Your Name"}) </div> </div> @Html.ValidationSummary("", new {@class = "text-danger"}) <div class="form-group"> @Html.LabelFor(model => model.Email, "Email", new {@class = "control-label col-sm-2"}) <div class="col-md-10"> @Html.EditorFor(m => m.Email, new {htmlAttributes = new {@class = "form-control", placeholder = "Email Address"}}) </div> </div> @Html.ValidationSummary("", new {@class = "text-danger"}) <div class="form-group"> @Html.LabelFor(m => m.Cell, new {@class = "col-md-2 control-label"}) <div class="col-md-10"> @Html.EditorFor(m => m.Cell, new {htmlAttributes = new {@class = "form-control", placeholder = "Phone Number", type = "text"}}) </div> </div> @Html.ValidationSummary("", new {@class = "text-danger"}) <div class="form-group"> @Html.LabelFor(m => m.Message, new {@class = "col-md-2 control-label"}) <div class="col-md-10"> @Html.TextBoxFor(m => m.Message, new {@class = "form-control", placeholder = "Comments", rows = "4"}) </div> </div> <div class="col-sm-6 col-sm-offset-3"> <div class="btn-toolbar"> <button class="btn-raised btn-primary btn" id="submit"> Submit <div class="ripple-container"></div> </button> <button class="btn btn-default">Cancel</button> </div> </div> }>
[HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Feedback(FeedbackViewModel model) { 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("example@gmail.com")); message.From = new MailAddress("example@outlook.com"); message.Subject = "Feedback"; message.Body = string.Format(body, model.Name, model.Cell, model.Email, model.Message); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = "example@example.com", Password = "Passwordquot; }; smtp.Credentials = credential; smtp.Host = "smtp.example.co.za"; smtp.Port = 587; smtp.EnableSsl = true; await smtp.SendMailAsync(message); return RedirectToAction("Sent"); } } //TODOL Send email in c# return View(model); }
Что я уже пробовал:
[HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Feedback(FeedbackViewModel model) { 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("example@gmail.com")); message.From = new MailAddress("example@outlook.com"); message.Subject = "Feedback"; message.Body = string.Format(body, model.Name, model.Cell, model.Email, model.Message); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = "example@example.com", Password = "Passwordquot; }; smtp.Credentials = credential; smtp.Host = "smtp.example.co.za"; smtp.Port = 587; smtp.EnableSsl = true; await smtp.SendMailAsync(message); return RedirectToAction("Sent"); } } return View(model); }
ZurdoDev
Похоже, у вас есть код, чтобы сделать то, что вы упомянули. Итак, у вас есть вопрос?
Maijane
@RyanDev моя форма не обрабатывается и не отправляется, что - то не так с моим кодом, когда я нажимаю кнопку Отправить, я хочу, чтобы форма обрабатывалась и давала мне уведомление, как отправленное сообщение.
ZurdoDev
1. ответьте на комментарий так, чтобы пользователь был уведомлен, а не добавлял новый комментарий к вашему собственному вопросу.
2. "что - то не так с моим кодом" - откуда мне знать? Я не могу запустить ваш код.
3. сделайте простую отладку, чтобы узнать, что происходит, а затем вы можете задать вопрос.