ASP.NET MVC3 のモデルに対する HiddenInput 属性の挙動

[HiddenInput] 属性の挙動が直観と反していた。

  • [HiddenInput] または [HiddenInput(DisplayValue=true)] は、read-only の値として扱われる。すなわち変数名と変数の値を表示し、HTML的には input type=”hidden” が出力される。
  • [HiddenInput(DisplayValue=false)] は、何も表示しない。input type=”hidden” 要素すら出力されない。

後者は、System.ComponentModel.DataAnnotations.Display を利用し [Display(AutoGenerateField = false)]  を指定した時と同じ挙動であり、「ユーザーに直接見せたくない」という意図を表現するには、Webに依存しない [Display] 属性を利用する方が好ましい。

Webにおいて 単純に input type=”hidden” 要素を出したいという状況に対する回答として、[UIHint(“Hidden”)] を指定し、それに対応する ascx ファイルを作成する方法がある。

http://stackoverflow.com/questions/3924780/asp-net-mvc-modedmetadata-question-for-hiddeninput

しかし、HiddenInput がこのような挙動になっているのには、多分理由があるのだろう。

ASP.NET MVC3 のモデルに対する HiddenInput 属性の挙動」への1件のフィードバック

  1. .NET Clips より:

    ASP.NET MVC3 のモデルに対する HiddenInput 属性の挙動 « Mimori’s Algorithms Press…

    素敵なエントリーの登録ありがとうございます – .NET Clipsからのトラックバック…

コメントを残す