8

プロパティのラベルを設定するために使用System.ComponentModel.DataAnnotations.DisplayAttributeできるので、クラスに使用したいのですが、クラスでは許可されていません。

using System.ComponentModel.DataAnnotations;

[Display(Name = "A person")]
public class Person
{
    [Display(Name = "A name")]
    public string Name { get; set; }
}

誰もがその回避策を知っていますか?

編集:強く型付けされたビューで使用したい。厳密に型指定された新しいビューを作成すると、次のようにクラス名が HTML でハードコーディングされます。

@model Models.Person
<fieldset>
    <legend>Person</legend>
    <div class="display-label">
        @Html.LabelFor(model => model.Name)
    </div>
</fieldset>

Name不動産と同じようなことをしたい。

4

3 に答える 3

6

DisplayName属性 (from ) は同様のSystem.ComponentModel機能を実行し、クラスに適用できます。

MSDN

于 2012-07-02T21:08:08.317 に答える
1

これを行う別の方法があるかどうかは本当にわかりませんが、通常はそうしないhard codeために、ビューで変数を作成してから、必要な場所を呼び出しました。あなたの場合、もう少しエレガントにするために私はやります

@{
    var viewName = typeof(Foo).Name;
}

@model Models.Person
<fieldset>
<legend>@viewName</legend>
<div class="display-label">
    @Html.LabelFor(model => model.Name)
</div>
</fieldset>
于 2012-07-02T21:25:51.997 に答える