Я читал аннотации данных (т. Е. Scott Guthrie's blog post), и я в восторге от концепции логики валидации в одном месте.Данные Аннотации к подмножеству свойств
Неужели кто-нибудь смог успешно использовать эту технику, предложив пользователю ввести подмножество свойств, связанных с данным классом?
Например (псевдокод) ...
public class Person
{
[Required]
public string Name
[Required]
public string Email
}
Тогда допустим у вас есть вид, который отображает форму только имя. Значение ModelState.IsValid в контроллере HttpPost для этого представления всегда будет false, потому что электронная почта требуется и отсутствует.
Я думал о наличии отдельных моделей, для части, для которой требуется только имя, а другое для части, которая требует как имени, так и электронной почты, но затем я нарушаю принцип СУХОГО, потому что я буду иметь имя логика проверки в двух местах.
Любые предложения? Можно ли получить данные аннотации, работающие таким образом? Должен ли я просто иметь два отдельных класса? Возможно, CustomValidationAttribute, который проверяет флаг, прежде чем определять, требуется ли электронная почта?
Я не один, чтобы взять кредит на свой собственный ответ, но я вижу, что Стив Сандерсон решил это на http://blog.stevensanderson.com/2010/02/19/partial-validation-in-aspnet-mvc- 2/- если кто-то хочет прочитать и отправить ответ ... :) – Mayo
Поведение по умолчанию MVC 1 было изменено по уважительной причине. На самом деле я действительно буду очень осторожен, что решение Стива. – jfar