2009-08-21 12 views
73

Html.LabelFor(c=>c.MyField)を使用する場合、誰でもどのようにテキストを指定するかについて知っています。ただMyFieldは画面に表示するのに適切な名前ではないかもしれませんが、代わりに「スーパーファンタスティックフィールド」が必要ですが、オーバーロードはありません。Html.Label指定されたテキスト[ASP.NET MVC 2]

アイデア?

答えて

128

あなたが使いますSystem.ComponentModel.DataAnnotations.DisplayAttribute

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

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

(表示名は、コンパイル時定数でなければならないことを警告して前に、.NET 4の使用System.ComponentModel.DisplayNameAttribute。)

+0

私はこれを明日テストします。 – Kezzer

+9

あなたは優勝者です。あなたは 'using System.ComponentModel; 'を持っている必要があります。 – Kezzer

+0

私は自分のコードジェネレータにこれらを自動的に吐き出し、パスカルを使った単語の間にスペースを挿入します。魅力的な作品! – GalacticCowboy

0

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

編集:ソースは常に利用できるので、メソッドを変更するだけで、T4ジェネレータを変更しても問題ありません。また、そのモードのチケットやリクエスト(何らかの形で)を入れて、次のバージョンに取り込みます。

+0

私は仕事のプレビューをしていますが、フィールド名が説明の相手に比べて非常に偽であるため、実際には実行可能ではありません。 – Kezzer

3

私はV2ダウンロードしていない、まだ、私はテストすることはできませんが、私はそれがDynamicDataのように働くと信じて、あなたはあなたのモデルにこのような何かをしたい、その場合には:

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

ディスプレイは利用できず、インテリセンスはいずれのライブラリでもそれを見つけることができません。 – Kezzer

+0

System.ComponentModel.DataAnnotations.dllへの参照を追加し、System.ComponentModel.DataAnnotationsを使用して追加します。 – Daniel

+0

ではなく、GAC(つまり参照参照の.NETタブ)のSystem.ComponentModel.DataAnnotationsへの参照を追加します。 – Daniel

26

MVC 3の新しいオーバーロードはそうあなたがカスタムテストをspecifiyすることができるはずがありlabelforヘルパー。

+8

@ Html.LabelFor(model => model.IdCode、 "Friendly Name") –

40

簡単な解決策は、ちょうどビューに次の行を追加します。

@Html.LabelFor(c=>c.MyField, "My Field") 
0

5つのオーバーロードがあります。いくつかは "string label text"の第2パラメータを提供します。これは "Super Fantastic Field"に設定されます。

0

リソース

[Display(Name = "My_Field",ResourceType = typeof(Resource))] 
public string MyField { get; set; } 

第二の方法で

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

Annotatinosを追加する必要があります二つの方法
1 "直接注釈"
2 "のリソースとAnnotatinos"
直接注釈があります。リソースファイルの値はおそらくResource.resxとなります。
あなたの目的に合った使用。

関連する問題