Как это возможно, объект не должен существовать в ModelState? - PullRequest
0 голосов
/ 07 ноября 2011

Мне интересно, если я запутался или документация Microsoft неверна ...

На мой взгляд у меня есть код:

ViewData.ModelState[""].Errors 

Последний бит появляется в intellisense, но когда я просматриваю документацию для класса ModelState, я не вижу его ...

здесь

Я что-то упустил?

Кроме того, почему ModelState является словарем, а затем ошибками, если он не обращается к ошибкам, а затем просматривает конкретную запись?

1 Ответ

0 голосов
/ 07 ноября 2011

ModelState, который вы видите в своем контроллере, является одним из следующих:

ModelStateDictionary : IDictionary<string, ModelState>

Итак, у вас есть словарь по имени поля формы со сложным объектом в качестве значения. ModelState определяется как:

    public ValueProviderResult Value {
        get;
        set;
    }

    public ModelErrorCollection Errors {
        get {
            return _errors;
        }
    }

Если вы хотите взглянуть на ModelState с точки зрения ошибок, а не с точки зрения ключей, вы всегда можете использовать Linq, чтобы найти их все:

var errs = ModelState.SelectMany(kv => kv.Value.Errors);

(Обратите внимание, что я не проверял этот Linq - это просто идея:)

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