20

次のコードがあります

<div class="editor-label">
    @Html.LabelFor(model => model.subCategoryName)
</div>

htmlを次のようにレンダリングします

<div class="editor-label">
   <label for="subCategoryName">Sub-Category Name</label>
</div>

<label>次のようなViewModel DataAnnotationsから値を取得せずに、きれいなHTMLをレンダリングするにはどうすればよいですか。

    [Display(Name = "Sub-Category Name")]
    public string subCategoryName { get; set; }

<div class="editor-label">
   Sub-Category Name
</div

@Html.XXXXXX (.DisplayTextFor、.DisplayNameFor など) のほぼすべてのメソッドを試しましたが、まだ機能しません。

4

3 に答える 3

28

LabelForこの場合の正しい解決策は、使用するのではなく、新しい MVC 4 メソッドDisplayNameForを使用することだと思います。

 @Html.DisplayNameFor(model => model.subCategoryName)

うまくいかなかったとあなたが言ったことに気づきましたが、それは奇妙に思えます。ASP.Netの例を次に示します- 新しいフィールドをムービー モデルとテーブルに追加し、まさにあなたがしようとしていることを示します。

于 2012-08-30T21:16:41.903 に答える
7

調査結果と修正: 掘り下げた結果、解決策が見つかりました。私の DataAnnotation は正しくフォーマットされていませんでした:

    [Required]
    [DisplayName("Sub-Category Name")]
    public string subCategoryName { get; set; } 

いいえ

    [Required]
    [Display(Name = "Sub-Category Name")]
    public string subCategoryName { get; set; } 

2 - 次の RAZOR コードを使用しました。

@Html.DisplayNameFor(model => model.subCategoryName)

その今働いています!

于 2012-08-31T03:10:12.863 に答える
3
[Mostly use in Display Name]
@Html.DisplayNameFor(model => model.UserName) 

[Used for Label, Functionality of Label click on it then cursor point to related control]

 @Html.LabelFor(m => m.UserName)               

[Used for Textbox]

@Html.TextBoxFor(m => m.UserName)

[Used for Validation Message]

@Html.ValidationMessageFor(m => m.UserName)
于 2013-07-18T09:10:49.330 に答える