public ActionResult Edit(EditPostViewModel data)
{
}
EditPostViewModel имеет такие атрибуты проверки:
[Display(Name = "...", Description = "...")]
[StringLength(100, MinimumLength = 3, ErrorMessage = "...")]
[Required()]
public string Title { get; set; }
В представлении я использую следующие помощники:
@Html.LabelFor(Model => Model.EditPostViewModel.Title, true)
@Html.TextBoxFor(Model => Model.EditPostViewModel.Title,
new { @class = "tb1", @Style = "width:400px;" })
Если я отправлю форму, в которую помещено это текстовое поле, проверка будет выполнена сначала на клиенте, а затем на службе(ModelState.IsValid).
Теперь у меня есть пара вопросов:
- Можно ли вместо этого использовать это с отправкой jQuery ajax? Я просто удаляю форму и при нажатии кнопки «Отправить» javascript соберет данные, а затем запустит $.ajax.
- Будет ли серверная сторона ModelState.IsValid работать?
- Как я могу переслать проблему проверки обратно клиенту и представить ее так, как если бы я использовал сборку int проверки (@Html.ValidationSummary(true))?
function SendPost(actionPath) {
$.ajax({
url: actionPath,
type: 'POST',
dataType: 'json',
data:
{
Text: $('#EditPostViewModel_Text').val(),
Title: $('#EditPostViewModel_Title').val()
},
success: function (data) {
alert('success');
},
error: function () {
alert('error');
}
});
}
Изменить 1:
Включено на страницу:
Подробнее здесь: https://stackoverflow.com/questions/140 ... query-ajax
Мобильная версия