У меня есть следующий ViewModel:ASP.NET MVC 3 Client Validation
public class ViewModel
{
[Display(Name = "firstname", ResourceType = typeof(Views.Validation))]
public string firstname { get; set; }
[Required(ErrorMessageResourceName="required", ErrorMessageResourceType = typeof(Views.Validation))]
[Display(Name="lastname", ResourceType = typeof(Views.Validation))]
public string lastname { get; set; }
...
}
и мой взгляд HTML:
...
<div class="row valid showMsg">
<div class="itemWrap clearfix">
<label>@Html.LabelFor(model => model.firstname)<span class="iconReq"> </span>:</label>
@Html.EditorFor(model => model.firstname)
</div>
<div class="info">
<p class="errorMsg">@Html.ValidationMessageFor(model => model.firstname)</p>
<p class="infoMsg">info message here</p>
<p class="focusMsg">text on active</p>
</div>
</div>
...
Если вы заметили, на мой взгляд, HTML у меня есть <div class="row valid showMsg">
с классом " showMsg ", который управляет отображением сообщений внутри моего <div class="info">
.
Теперь для проверки сервера я написал пользовательский помощник HTML, который добавляет, что этот класс «showMsg» в DIV, когда не действует так:
public static MvcHtmlString ValidationRowFor<TModel, TProperty>(this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression)
{
MvcHtmlString normal = html.ValidationMessageFor(expression);
if (normal != null)
{
return MvcHtmlString.Create("errorOn");
}
return null;
}
и использовать его как так:
<div class="row valid @Html.ValidationRowFor(model => model.firstname)">
Я хотел бы сделать то же самое для проверки клиента. Так что он автоматически добавит класс showMsg к родительскому объекту при ошибке. Как мне это сделать?
Спасибо.
Редактировать: ok это работает для обычного HTML, но не в MVC3 ??
$(function(){
var validator = $(".form").validate({
highlight: function(element) {
$(element).parents().closest('div.row').addClass('errorOn');
},
unhighlight: function(element) {
$(element).parents().closest('div.row').removeClass('errorOn');
}
});
});
с проверкой клиента вы имеете в виду JQuery или что-то подобное, что поможет вам с проверкой данных и ошибки отображения? –
да. я хотел бы «ввести» или изменить «jquery.validate.unobtrusive.min.js» новую «ненавязчивую проверку клиента в ASP.NET MVC 3», поэтому он автоматически сделает это для меня. что добавит этот класс для каждой недопустимой записи. – ShaneKm