Я пытаюсь реализовать то, что мы видим здесь:
http://weblogs.asp.net/cibrax/archive/2008/08/01/combining-jquery-validation-with-asp-net-mvc.aspx
У меня проблема в том, что он не использует удаленные валидаторы.
<form action="<%=Url.Action("Register", "Home")%>" method="post" id="form-sign-up">
В моем случае, каждый раз, когда я нажимаю "Отправить", он отправляет сообщение в действие "Регистр" - мне никогда не удавалось использовать методы валидатора Json. На самом деле я загружаю образец, и удаленные сообщения не работают для меня. Работает ли удаленная часть в образце для кого-либо еще?
Кто-нибудь знает, как заставить их работать или есть лучший пример?
По сути, у меня есть модальная всплывающая форма редактирования. Я хочу сделать всю проверку перед публикацией в методе сохранения (или в этом случае Register
).
Я просто должен проверить, требуется ли это, и удаленный валидатор должен проверить, является ли он дубликатом. В моем примере я скучаю по валидаторам и в конечном итоге в методе сохранения. Очевидно, я хочу сохранить, только если поле заполнено и не является дубликатом.
РЕДАКТИРОВАТЬ 0:
Я использую MVC 2
<form action="/Region/Save" method="post" id="Form-AddRegion">
<div class="editor-label">
<%: Html.Label("Region:") %>
<%: Html.TextBoxFor(model => model.Region, new { @class = "edit required remote"}) %>
</div>
<p>
<input type="submit" value="Save" />
<input type="button" onClick="window.parent.CloseWindow();" value="Cancel" />
</p>
</form>
public ActionResult ValidateRegion(string name)
{
if (!something)
return Json(true, JsonRequestBehavior.AllowGet);
return Json(false, JsonRequestBehavior.AllowGet);
}
<script type="text/javascript">
$(document).ready(function () {
alert('jQuery is referenced properly');
$("#Form-AddRegion").validate({
rules:
{
//rules each for specified input-id
Region:
{
required: true,
remote: '<%=Url.Action("ValidateRegion","Region") %>'
}
},
messages:
{
Region:
{
required: "Please provide a Region",
remote: jQuery.format("{0} is already in use")
}
}
});
});
</script>
Так что проблема в том, что при отправке я всегда публикую в методе сохранения /Region/Save
перед валидатором ValidateRegion
! Я пропускаю маршрут в global.asax.cs
?
Мне нужно знать, когда код javascript отправляет / попадает в метод проверки? Я бы предположил при отправке, но, кажется, никогда не звонят!?
Это, конечно, раздражает, когда люди не читают вашу проблему и не указывают на основную справочную документацию, как ни странно, я уже был там.