无法在asp.net mvc2中的自定义控件中访问GetModelStateValue

时间:2011-08-06 13:34:00

标签: asp.net asp.net-mvc-2

我正在尝试为文本框控件编写自定义控件,其中想要根据某些输入属性生成控件,我无法在自定义控件中访问GetModelStateValue。

我该怎么做?

1 个答案:

答案 0 :(得分:24)

您将无法访问它,因为该方法被标记为内部方法。您可以做的最好的事情就是复制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;
}