ASP.NET MVC 2 Проверить список выбора - PullRequest
2 голосов
/ 14 августа 2010

Допустим, у меня есть следующий список выбора (Страны) в ViewModel:

//..
private static string[] _countries = new[] {
"USA",
"Canada",
"Japan"
};
//...
SelectList Countries = new SelectList(_countries, dinner.Country);
//...

И я отображаю выпадающий список следующим образом:

<%: Html.DropDownListFor(m => m.Dinner.Country, Model.Countries) %>

Я заметил, что с помощью firebug я могу добавить свои собственные значения в DropDownList, и это значение может быть вставлено в базу данных.

Каков наилучший способ проверки отсутствия введенных значений (предпочтительно, СУХОЙ метод)?

Ответы [ 2 ]

1 голос
/ 14 августа 2010

Я бы порекомендовал воспользоваться DataAnnotations и создать свой собственный настраиваемый атрибут проверки .

. Это позволяет инкапсулировать логику проверки (удовлетворяющую требованиям DRY), и будет применяться на стороне сервера (предотвращая манипуляции с html, как те, что вы описали).

1 голос
/ 14 августа 2010

Вы всегда должны проверять свою сторону сервера данных перед вставкой в ​​БД. Если бы у вас было ключевое ограничение, это не было бы такой проблемой, потому что обновление или вставка потерпели бы неудачу. Однако в этом случае у вас должно быть бизнес-правило на стороне сервера для проверки вашего объекта перед выполнением вызова SQL.

Поскольку вы строите список из статического списка элементов, этот список должен быть доступен для вашего бизнес-уровня, чтобы вы могли сравнить его с ним, чтобы убедиться, что значение, содержащееся в вашей модели, является действительным. Вы можете добавить метод к вашему объекту, такой как IsValid или что-то, что сделало бы быструю проверку и проверил бы, существуют ли значения для этих жестко закодированных выборов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...