Добрый день.
Имеется ASP.NET MVC 3 приложение, в котором есть валидация данных, вводимых пользователем. Необходимо сделать так, чтобы значение в определенном поле формы было строго больше нуля. Для этого я создаю свой атрибут GreaterNullAttribute, так как атрибут Range не подходит:
<br>
public class GreaterNullAttribute : ValidationAttribute<br>
{<br>
protected override ValidationResult IsValid(object value, ValidationContext validationContext)<br>
{<br>
if (IsValid(value))<br>
return ValidationResult.Success;<br>
return new ValidationResult("Error!!!!!");<br>
}<br><br>
public override bool IsValid(object value)<br>
{<br>
if (value is Single)<br>
{<br>
return (Single) value > 0;<br>
}<br>
return false;<br>
}<br>
}<br>
Затем создаю модель:
<br>
public class MyModel<br>
{<br>
[Required]<br>
[DisplayName("Вещественное число")]<br>
[GreaterNull]<br>
public Single Number { get; set; }<br>
}<br>
И создаю представление:
<br>
@model MyProject.Models.MyModel<br><br>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script><br>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script><br><br>
@using (Html.BeginForm()) {<br>
@Html.ValidationSummary(true)<br>
<fieldset><br>
<legend>Model</legend><br><br>
<div class="editor-label"><br>
@Html.LabelFor(model => model.Number)<br>
</div><br>
<div class="editor-field"><br>
@Html.EditorFor(model => model.Number)<br>
@Html.ValidationMessageFor(model => model.Number)<br>
</div><br>
<p><br>
<input type="submit" value="Submit" /><br>
</p><br>
</fieldset><br>
}<br>
После этого я ввожу отрицательные данные в поле number, нажимаю кнопку Submit и НЕ получаю никаких ошибок валидации. Форма успешно проходит.
В чем я не прав? Подскажите пожалуйста. Заранее спасибо за ответ.
PS: Почему Хабр говорит, что в вопросе нужно ставить habracut?