web-dev-qa-db-ja.com

Html.LabelFor指定されたテキスト

Html.LabelFor(c=>c.MyField)を使用するときにテキストを指定する方法については、だれでもアイデアを得ました。単にMyFieldは画面に表示するのに適切な名前ではないかもしれません。代わりに「スーパーファンタスティックフィールド」が必要かもしれませんが、オーバーロードはないようです。

何か案は?

78
Kezzer

あなたが使う - System.ComponentModel.DataAnnotations.DisplayAttribute

[Display(Name = "My Field")]
public string MyField { get; set; }

属性に ResourceType プロパティを設定すると、リソースファイルを使用できるようになります。

(.NET 4より前では System.ComponentModel.DisplayNameAttribute 表示名はコンパイル時の定数でなければならないことに注意してください。)

134
Curtis Buys

簡単な解決策は、ビューに次を追加するだけです。

@Html.LabelFor(c=>c.MyField, "My Field")
46
Faisal Khalid

MVC 3には新しいオーバーロードが存在するため、labelforヘルパーのカスタムテストを指定できるはずです。

26
Joe Cartano

私はまだv2をダウンロードしていないので、テストすることはできませんが、DynamicDataのように機能すると信じています。

[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}
3
Daniel

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という名前のリソースファイルに値を追加する必要があります。
目的に合った使用。

2
Baimyrza Shamyr

5つのオーバーロードがあります。いくつかは、「文字列labelText」の2番目のパラメーターを提供します。これは、「The Super Fantastic Field」に設定します。

0
yogibeare

まだCP1をチェックアウトしていませんが、Scottのリリースを読んで、コードがT4によって生成されたことを思い出すようです。あなたはそれをいつでも変更できると思いますが、CP2でオーバーロードを提供すると思われます。

編集:ソースは常に利用可能であるため、メソッドを変更し、T4ジェネレーターを変更するだけで十分です。また、そのmodのチケットまたはリクエストを(なんとかして)入れて、次のバージョンで機能するようにします。

0
Chance