2011-08-06 13 views
2

テキストボックスコントロール用のカスタムコントロールを作成しようとしていますが、入力属性に基づいてコントロールを生成したい場合、GetModelStateValueにアクセスできません。私のカスタムコントロール。asp.net mvc2でカスタムコントロールのGetModelStateValueにアクセスできない

どうすればよいですか?

+0

これまでに何を試みましたか?あなたのコードを示してください。あなたのコードではうまくいかず、達成しようとしていることは何ですか?あなたの質問は何ですか? –

答えて

23

そのメソッドが内部メソッドとしてマークされているため、そのメソッドにアクセスすることはできません。あなたができることは、MVCのソースコードを複製し、そのメソッドをどこにアクセスできるかに置き換えることです。以下を使用できます。 ViewDataにアクセスするには、htmlHelperオブジェクトを渡す必要があります。

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; 
} 
関連する問題