[РЕШЕНО] Валидация данных в форме в ASP.NET MVC 3?

Добрый день.

Имеется 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?
  • Вопрос задан
  • 6196 просмотров
Пригласить эксперта
Ответы на вопрос 3
taliban
@taliban
php программист
Может я ошибаюсь, но разве Ваш код — не серверная валидация? Как ни крути а C# выполняется на сервере.
PS А: хабр глючит в последнее время.
Ответ написан
intation
@intation
Извините меня конечно, но 21 век на дворе, HTML5 в браузере… на стороне клиентской части неправильные данные просто не пройдут = меньше плясок с бубном…
Ответ написан
int02h
@int02h Автор вопроса
Хм. Я сам разобрался. Если кому нужна будет помощь, пишите.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы