Разработка механизма проверки полей формы - PullRequest
1 голос
/ 18 октября 2011

Я хочу создать механизм проверки форм, который я буду дополнительно настраивать, но в качестве основы мне нужно несколько советов о том, как построить базу.

Поля формы могут быть вашими стандартными полями формы, такими как:

textbox
drop down list
checkboxes
etc.

Таким образом, этот механизм проверки получит список типов полей формы, а затем набор правил для каждого поля формы.

Например:

Скажем, у вас есть текстовое поле, правило будет применяться к текстовому полю, и оно должно удостовериться, что значение является "синим" или "123" (так что это может быть строковое или целочисленное значение).

Я ищу какое-то руководство о том, как мне следует планировать свои занятия.

Какие шаблоны дизайна использовать?

public class Rule
{
   public RuleType  RuleType {get;set;}
   public ComparisonType ComparisonType {get;set;}
}

public enum RuleType
{
    TextBox,
    DropDownList
}

public enum ComparisonType
{
    Equal,
    GreaterThan,
    GreaterThanOrEqual,
    LessThan,
    LessThanOrEqual
}

Это похоже на хорошее начало?

В классе Rule как установить значение поля формы.

т.е. Скажем, тип сравнения равен «Равен», я должен сказать, равен «Синему» или 123. У меня не может быть строкового свойства, потому что я должен сравнивать и для целых чисел или для логических значений.

Идеи

Как бы вы это спроектировали?

Ответы [ 3 ]

1 голос
/ 18 октября 2011

Проверка данных на основе атрибутов (DataAnnotations) - это мощная модель, поскольку ее легко применять для проверки как на уровне пользовательского интерфейса, так и на уровне бизнес-объектов, и она легко расширяема.

Вы не указали свою среду, но если вы используете MVC, вот хороший стартер:

http://www.asp.net/mvc/tutorials/validation-with-the-data-annotation-validators-cs

Чтобы узнать о создании пользовательских валидаторов:

http://www.a2zdotnet.com/View.aspx?Id=182

Чтобы использовать DataAnnotations с веб-формами, взгляните на эту реализованную реализацию:

http://adventuresdotnet.blogspot.com/2009/08/aspnet-webforms-validation-with-data.html

0 голосов
/ 17 февраля 2012

Попробуйте Oval , это валидатор объекта, и вы можете применять свои ограничения в качестве аннотаций в самом файле класса.По сути, вы можете сделать свою форму как класс pojo и аннотировать поля с помощью овальных проверок / ограничений. 1

0 голосов
/ 18 октября 2011

Я бы хотел использовать лямбда-выражения / анонимные методы, это может сделать ваши проверки более читабельными:

C # Лямбда-выражения или делегаты как свойства или аргументы

...