2012-06-20 40 views
6

私は次のようなモデルクラスを持っている:モデルの表示名が表示されていませんか?

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

[System.Runtime.Serialization.DataContract(IsReference = true)] 
[System.ComponentModel.DataAnnotations.ScaffoldTable(true)] 
public class TestModel 
{ 
    [Display(Name="Schedule Name")] 
    [Required] 
    public string scheduleName; 
} 

そして、私が持っている私の.cshtmlファイル内:

 <li> 
      @Html.LabelFor(m => m.scheduleName) 
      @Html.TextBoxFor(m => m.scheduleName, Model.scheduleName) 
      @Html.ValidationMessageFor(m => m.scheduleName) 
     </li> 

しかし、いくつかの理由で私の表示名は(ラベル番組を表示されません'scheduleName')

私は他のクラスで同じコードを持っていると私は誓って、うまく表示されるようです。誰もこれがうまくいかない理由を指摘できますか?

+0

プロジェクトをビルドしてもう一度やり直してください。 – Shyju

+0

@Shyjuありがとうございます。しかし、私は何度もプロジェクトを再構築しました(私は何日も問題を抱えていました。 – Kyle

答えて

7

DataAnnotationsModelMetadataProviderはプロパティで動作します。 scheduleNameは、フィールドだけではなく、プロパティでなければなりません。

[System.Runtime.Serialization.DataContract(IsReference = true)] 
[System.ComponentModel.DataAnnotations.ScaffoldTable(true)] 
public class TestModel 
{ 
    [Display(Name="Schedule Name")] 
    [Required] 
    public string scheduleName { get; set; } 
} 

注:お使いのプロパティ名がPascalCasedする必要があるC#の命名規則によります。

+0

あなたはパスカル・ケースを意味します。それはすでにラクダのケースです。 – HackedByChinese

+1

ああ、そうでした。私はフィールドではなく財産である必要があることを認識していませんでした。 – Kyle

+0

@HackedByChinese良いキャッチ、固定:) – nemesv

関連する問題