В настоящее время я разрабатываю пользовательские коды проверки в MVC3. У меня есть ряд правил для каждого свойства, а также правила для всей модели, как показано ниже:
Код проверки:
[AttributeUsage(AttributeTargets.All)]
public sealed class VerifyRoleIntegrityAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
RoleItem item = (RoleItem)value;
if (item.Name == null && item.UserId != 0)
return new ValidationResult("Error: Name is missing");
return ValidationResult.Success;
}
}
Модель:
[VerifyRoleIntegrity]
public class RoleItem //imagine this as a single row of div, there's a list of them
{
[ValidUser]
public string Name { get; set; } //bound to a textbox using Html.TextBoxFor
public int UserId { get; set; }
public bool IsAdmin { get; set; }
public bool IsUserType1 { get; set; }
public bool IsUserType2 { get; set; }
}
Вид:
<div class="ad-row">
@Html.ValidationMessageFor(model => model)
<div class="ad-cell">
@Html.TextBoxFor(model => model.Name)
@Html.HiddenFor(model => model.UserId)
</div>
<div class="ad-cell">
@Html.CheckBoxFor(model => model.IsAdmin)
</div>
<div class="ad-cell">
@Html.CheckBoxFor(model => model.IsUserType1)
</div>
<div class="ad-cell">
@Html.CheckBoxFor(model => model.IsUserType2)
</div>
</div>
Для ValidUser, всякий раз, когда я сталкиваюсь с ошибкой проверки после публикации, MVC удобно выделяет текстовое поле чистым красным выделением, а я ничего не стилизую. Это мое предполагаемое поведение.
Для VerifyRoleIntegrity я хочу, чтобы вся строка ошибки была как-то выделена, возможно, измените цвет фона включающего его div. В настоящее время все, что я могу реализовать, это Html.ValidationMessageFor (model => model), где я могу вывести сообщение об ошибке моего пользовательского класса проверки. Скорее, это просто сообщение, я хочу стиль проверки.
Я подумал, что мне нужно где-то вникнуть во встроенные файлы jquery и css, предоставленные мне MVC, но у меня недостаточно знаний javascript / css, чтобы сделать это правильно, поэтому я хочу обратиться за помощью, чтобы завершить круг , Большая часть того, что я нашел в Интернете, останавливается на том, как реализовать ValidationAttribute, но кроме этого я не нашел много. Кроме того, я понимаю, что мог бы взломать обнаружение добавленного сообщения проверки через javascript, чтобы что-то сделать с этой строкой div, но это взлом, а не правильная реализация.
Спасибо.