Я создал контактную форму, модель состоит из простого ... Имя, адрес электронной почты, номер телефона и т. Д.
В модели у меня есть несколько простых обязательных атрибутов для некоторых свойств.
Все это прекрасно работает, когда не было ошибок проверки, я получаю электронное письмо с сообщением о том, что форма отправлена, и пользователю выводится милое небольшое сообщение "спасибо".
Моя проблема, когда проверка не проходит. Я получаю обычную красную рамку для текстовых полей и т. Д. Теперь, если пользователь обновляет текстовые поля в соответствии с требованиями проверки и снова отправляет документы, я получаю два электронных письма. Обе одинаковые детали в них. Однако, похоже, что во многих случаях вы не проходите проверку, а именно столько звонков (электронных писем) я получаю.
Я довольно новичок в MVC, так что, если бы вы могли указать мне правильное направление, это было бы здорово.
Приветствия
J
Форма:
using (Ajax.BeginForm("ProcessContact", "Contact", null, new AjaxOptions { UpdateTargetId = "subContentWrapper", }))
{
@Html.ValidationSummary()
<p>
<strong>Please tell us a little about you and the nature of your enquiry </strong>
</p>
<table>
<tr>
<td style="width: 200px;">
Name:
</td>
<td>@Html.TextBoxFor(x => x.Name, new { @class = "textBox" })
</td>
</tr>
<tr>
<td>
Company Name:
</td>
<td>@Html.TextBoxFor(x => x.CompanyName, new { @class = "textBox" })
</td>
</tr>
<tr>
<td>
E-mail:
</td>
<td>@Html.TextBoxFor(x => x.Email, new { @class = "textBox" })
</td>
</tr>
<tr>
<td>
Phone:
</td>
<td>@Html.TextBoxFor(x => x.Phone, new { @class = "textBox" })
</td>
</tr>
</table>
<br />
<br />
<p style="text-align: center">
<input type="submit" value="Contact Us" /></p>
}
}
Код:
if (ModelState.IsValid)
{
if (ContactService.ProcessContactSubmission(model))
{
ViewBag.Sent = true;
}
else
{
ViewBag.Sent = false;
ModelState.AddModelError("", "Sorry an error has occured, please try again later.");
}
return PartialView("~/Views/Modules/Contact Us/Main.cshtml", model);
}
else
{
ViewBag.Sent = false;
return PartialView("~/Views/Modules/Contact Us/Main.cshtml", model);
}
ContactService.ProcessContactSubmission (model) - это просто отправляет электронное письмо и возвращает true / false