Html.LabelFor(c=>c.MyField)
を使用するときにテキストを指定する方法については、だれでもアイデアを得ました。単にMyField
は画面に表示するのに適切な名前ではないかもしれません。代わりに「スーパーファンタスティックフィールド」が必要かもしれませんが、オーバーロードはないようです。
何か案は?
あなたが使う - System.ComponentModel.DataAnnotations.DisplayAttribute
:
[Display(Name = "My Field")]
public string MyField { get; set; }
属性に ResourceType
プロパティを設定すると、リソースファイルを使用できるようになります。
(.NET 4より前では System.ComponentModel.DisplayNameAttribute
表示名はコンパイル時の定数でなければならないことに注意してください。)
簡単な解決策は、ビューに次を追加するだけです。
@Html.LabelFor(c=>c.MyField, "My Field")
MVC 3には新しいオーバーロードが存在するため、labelforヘルパーのカスタムテストを指定できるはずです。
私はまだv2をダウンロードしていないので、テストすることはできませんが、DynamicDataのように機能すると信じています。
[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}
2つの方法があります
1 "直接アノテーション"
2「リソースのある注釈」
直接注釈
[Display(Name = "My Field")]
public string MyField { get; set; }
リソースを持つ注釈
[Display(Name = "My_Field",ResourceType = typeof(Resource))]
public string MyField { get; set; }
2番目の方法では、おそらくResource.resxという名前のリソースファイルに値を追加する必要があります。
目的に合った使用。
5つのオーバーロードがあります。いくつかは、「文字列labelText」の2番目のパラメーターを提供します。これは、「The Super Fantastic Field」に設定します。
まだCP1をチェックアウトしていませんが、Scottのリリースを読んで、コードがT4によって生成されたことを思い出すようです。あなたはそれをいつでも変更できると思いますが、CP2でオーバーロードを提供すると思われます。
編集:ソースは常に利用可能であるため、メソッドを変更し、T4ジェネレーターを変更するだけで十分です。また、そのmodのチケットまたはリクエストを(なんとかして)入れて、次のバージョンで機能するようにします。