2017-03-23 4 views
0

labelforに表示するビューモデルの内部クラスの表示名を取得しようとしています。ViewModel上のダングリングクラスLabelForで使用されていないDisplayName

DetailsTab.PrimaryContact.Nameの「名前」は表示されません 属性をDisplay(Name = "")にも変更しようとしましたが、それはうまくいかないようです。これは動作するはずですが、私はそれを動作させることができません。私は何かを逃したか?

質問:どのように私はlabelfor

public class CustomerDetailsData 
    { 
     [DisplayName("Name")] 
     [StringLength(250)] 
     public string Name { get; set; } 
     [StringLength(250)] 
     public string Logo { get; set; } 
     [DisplayName("Tenant ID")] 
     public string CustomerId { get; set; } 
     public DetailsData DetailsTab { get; set; } 
     public class DetailsData 
     { 
      [DisplayName("Industry")] 
      [StringLength(250)] 
      public string Industry { get; set; } 
      [DisplayName("Team Count")] 
      [StringLength(250)] 
      public string TeamCount { get; set; } 
      public PrimaryContactData PrimaryContact { get; set; } 

      public class PrimaryContactData 
      { 
       [DisplayName("Primary Contact Name")] 
       public string Name { get; set; } 
       [DisplayName("Primary Contact Email")] 
       public string Email { get; set;} 
       [DisplayName("Primary Contact Phone")] 
       public string Phone { get; set;} 
      } 
     } 
    } 



<div class="row"> 
    <div class="large-2 columns"> 
      @Html.LabelFor(model => model.DetailsTab.PrimaryContact.Name) 
    </div> 
    <div class="large-10 columns"> 
      @Html.DisplayFor(model => model.DetailsTab.PrimaryContact.Name) 
    </div> 
</div> 
+0

'PrimaryContactData'の' Name'プロパティを 'PrimaryContactName'のように変更してもう一度テストできますか? – Alisson

+0

こんにちは@Alisson私は上記を行い、 "プライマリコンタクト名"を返し、大文字によるスペースを仮定します。理想的には、LabelForとDisplayNameを使うことができます。なぜなら、プロパティ名にPrimaryContactを宣言する必要がないからです。 – cooLLedge

答えて

0

上のDisplayNameを使用するために私の内側のプロパティを取得します私のプロジェクトが正常にビルドされなかった場合、私は再構築した、それは私をピックアップし始めたように思えDisplayName

+0

私はこれが理由ではなかったと思う。 'DisplayNameFor()'を見て、他のこれらの 'HTML'ヘルパーメソッドは、プロパティを検査する際に' Model'に依存します。実際には、プロパティ名(** Name **)が 'Model'(これは' CustomerDetailsData')に偶然存在しているので、ヘルパーは子クラスではなくモデルからプロパティを検討していました。 – Alisson

+0

私は名前にプロパティの名前を変更して、再度テストしましたが、名前としてプロパティで正常に動作します。ビジュアルスタジオを再起動すると、私のために修正されました。回答に感謝します。あなたが思考のその肩の下で私をセブトしていないなら、試してみませんでした。 – cooLLedge

+0

うーん、面白いです。この種のトラブルは一度もありませんでしたが、あなたがしなければならないことを知っていることは良いことです。 – Alisson

関連する問題