Html.LabelFor指定されたテキスト
-
19-09-2019 - |
質問
誰もが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ヘルパーのためのカスタムテストをspecifiyすることができるはずがあります。
私はv2のダウンロードしていない、まだ、私はテストすることはできませんが、私はそれはあなたがあなたのモデルにこのような何かをしたい、その場合にはDynamicData、のように動作します信じています:
[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}
二つの方法が
1「直接注釈」
2「Annotatinosリソースを持つ」
あります
直接注釈
[Display(Name = "My Field")]
public string MyField { get; set; }
リソースとAnnotatinos
[Display(Name = "My_Field",ResourceType = typeof(Resource))]
public string MyField { get; set; }
第二の方法は、おそらくの Resource.resx のようという名前のリソースファイルの値を追加する必要があります。
あなたの目的に合った使用ます。
私はまだCP1をチェックアウトしていないが、私はそれのスコットのリリースを超える読んで、私はコードがT4によって生成されたことを思い出しているようです。私は、あなたが常にあることが、私は、彼らがCP2に過負荷を提供することを疑うだろう国防省ができたとします。
編集:ソースが常に利用可能であり、したがって、あなただけの、方法を国防省T4ジェネレータを変更し、あなたが行ってもいいでしょうができます。それは次のバージョンに加工しますので、またそのMODのチケットやリクエスト(何とか)に入れました。
5つのオーバーロードがあります。いくつかは、あなたが「スーパーファンタスティック・フィールド」に設定します「文字列labelText」、の2番目のパラメータを提供します。