У меня есть простая 1-страничная программа для отправки электронной почты пользователям. У меня есть 3 поля для имени, электронной почты и номера телефона. Кажется, что код работает с кнопкой ввода, с проверкой правильности и выдачей правильного сообщения об ошибке. Но я больше склонен использовать привязывающий тег (ActionLink) для своего пользовательского интерфейса. Данные по-прежнему сохраняются, когда я нажимаю на тег привязки (используя jQuery), но проверки не срабатывают. Есть ли что-то, что мне не хватает, или есть лучший способ сделать это?Проверка MVC4 не работает
Я использовал this пост как ссылка.
Модель
public class Contact
{
[Required(ErrorMessage = "Name is required")]
public string Name { get; set; }
[Required(ErrorMessage = "Email is required")]
public string Email { get; set; }
[Required(ErrorMessage = "Phone is required")]
public string PhoneNumber { get; set; }
}
Посмотреть
<div>
@Html.TextBoxFor(model => model.Name, new { @class = "form-control", placeholder="Name" })
@Html.ValidationMessageFor(model=>model.Name)
</div>
<div>
@Html.TextBoxFor(model => model.Email, new { @class = "form-control", placeholder="Email" })
@Html.ValidationMessageFor(model=>model.Email)
</div>
<div>
@Html.TextBoxFor(model => model.PhoneNumber, new { @class = "form-control", placeholder="Phone" })
@Html.ValidationMessageFor(model=>model.PhoneNumber)
</div>
<div>
<input type="submit" value="Give me Free Advice" />
<div class="btn">
@Html.ActionLink("I want free advice", "designerhome")
</div>
</div>
<script>
$(function() {
$('.btn').click(function (e) {
$.post("/campaign/designerhome", { Name: $("#Name").val(), Email: $("#Email").val(), PhoneNumber: $("#Phone").val() }, function (result) {
//do whatever with the response
if (result.status == true) {
alert('Email submitted successfully');
}
});//end of post
});//end of click
});
</script>
Контроллер
[HttpPost]
public ActionResult designerhome(Contact contact)
{
if (ModelState.IsValid)
{
}
return View("Advert1");
}
Чтобы избежать запроса, перенаправляется на запрос GET. bind e.preventDefault() в методе onClick() привязки. – Sravan