0

私の BE クラスには、テーブル フィールドと一致する特定のプロパティがあります。これらの各プロパティのわかりやすい名前を公開したいと思います。たとえば、グリッドの列ヘッダーとして表示します。

たとえば、 というプロパティがありますFirstName。わかりやすい名前を次のように公開したいFirst Name

このために、この BE クラスのプロパティとしてペアの配列を作成しました。つまり、myarray("FirstName","First Name") これを行うより良い方法はありますか?

4

3 に答える 3

3

モデルでこれを行うことができます:

[Display(Name = "First Name")]
public string FirstName { get; set; }

次に、ビューで次のようにラベル名を参照できます。

@Html.DisplayFor(m=>m.FirstName)
于 2013-01-10T09:30:25.790 に答える
3

[DisplayName("First name")]BE プロパティで属性を使用できます。

そして、ビューで使用します: @Html.LabelFor(m=>m.FirstName)

SO に関する同様の質問: How to change the display name for LabelFor in razor in mvc3?

編集

[Display(Name="First name")]すべての BE プロパティで属性を使用することもできます。次に、BE を表示するためのテンプレートを作成します (テンプレートの作成方法の詳細については、こちら: DisplayFor() 用の MVC Razor テンプレートを作成する方法を参照してください)。

次に、ビューで次のように使用します。

@Html.DisplayFor(m=>m, "MyModelTemplateName")

于 2013-01-10T09:31:09.387 に答える
0

これは便利だと思いました。これが解決方法です。他の人にも役立つかもしれないので投稿します。

BE でこれを定義します。

[DisplayName("First Name"), Description("First Name of the Member")]
public string FirstName
{
    get { return _firstName; }
    set { _firstName = value; }
}

各プロパティの詳細は次のとおりです。

PropertyDescriptorCollection propertiesCol = TypeDescriptor.GetProperties(objectBE);

PropertyDescriptor property;

for (int i = 0; i < propertiesCol.Count; i++)
{
    property = TypeDescriptor.GetProperties(objectBE)[i];

    /*
    // Access the Property Name, Display Name and Description as follows
    property.Name          // Returns "FirstName"
    property.DisplayName   // Returns "First Name"
    property.Description   // Returns "First Name of the Member"
    */
}
  • objectBEBE クラスのオブジェクト インスタンスです。
于 2013-01-11T09:57:06.487 に答える