Не удается получить доступ к GetModelStateValue в пользовательском элементе управления в asp.net mvc2 - PullRequest
3 голосов
/ 06 августа 2011

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

Как мнесделать это?

1 Ответ

24 голосов
/ 14 октября 2011

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

static object GetModelStateValue(HtmlHelper htmlHelper, string key, Type destinationType)
{
    ModelState modelState;
    if (htmlHelper.ViewData.ModelState.TryGetValue(key, out modelState))
    {
        if (modelState.Value != null)
        {
            return modelState.Value.ConvertTo(destinationType, null /* culture */);
        }
    }
    return null;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...