2016-06-29 11 views
2

の定義が含まれていません...ここに私のすべてのコードViewModelには、私は1つのビューで2つの<code>UserManager</code><code>Feedback</code>モデルをバインドしようとしていますが、私はビューが電子メールのいずれかの定義が含まれていないという見解で問題に直面していますメール

があります
public class FeedbackMixModel 
    { 

     public List<UserManager> allUserManagers { get; set; } 

     public List<Feedback> allfeedbacks { get; set; } 

    } 

コントローラ== >>>

var user = db.UserManagers.ToList(); 
      var feedbacks = db.Feedbacks.ToList(); 

      var Model = new FeedbackMixModel 
      { 
       allUserManagers =user, 
       allfeedbacks=feedbacks 
      }; 

      return View(Model); 

図== >>

@model WebApplication5.Models.FeedbackMixModel 


<!-- Content Wrapper. Contains page content --> 
    <div class="content-wrapper"> 
     <!-- Content Header (Page header) --> 

     <!-- Main content --> 


      <table class="pretty" id="dt"> 
       <thead> 
        <tr> 
         <th > 
          @Html.DisplayNameFor(model => model.Email) 
         </th> 
         <th> 
          @Html.DisplayNameFor(model => model.CurrentStorage) 
         </th> 
         <th> 
          @Html.DisplayNameFor(model => model.MaxStorage) 
         </th> 
         <th> 
          @Html.DisplayNameFor(model => model.LastLoginMonth) 
         </th> 

        </tr> 
       </thead> 
       <tbody> 
        @foreach (var item in Model.allUserManagers) 
        { 
         <tr> 
          <td> 
           @Html.DisplayFor(modelItem => item.Email) 
          </td> 
          <td> 
           @Html.DisplayFor(modelItem => item.CurrentStorage) 
          </td> 
          <td> 
           @Html.DisplayFor(modelItem => item.MaxStorage) 
          </td> 
          <td> 
           @Html.DisplayFor(modelItem => item.LastLoginMonth) 
          </td> 

         </tr> 
        } 
       </tbody> 
      </table> 

私はこの問題を解決するかどうかは完全に混乱しています...メールは私が間違って

+1

あなた 'FeedbackMixModel'を'Email'プロパティはありません。 'CurrentStorage'、' MaxStorage'、 'LastLoginMonth'もありません。これらのプロパティはどこにありますか? –

+0

これらのプロパティは、userManagerクラス – sajiii

答えて

2

何かをやっている場合はあなたの実際のFeedbackMixModelモデル自体はあなたがしようとする性質の定義を持っていないアクセスする方法をUserManagerクラスで定義する場所あなたのヘッダーのために使用します。

<thead> 
    <tr> 
    <th> 
     @Html.DisplayNameFor(model => model.Email) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.CurrentStorage) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.MaxStorage) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.LastLoginMonth) 
    </th> 
    </tr> 
</thead> 

既存のモデルには、2つのプロパティのみ含まれていますallUserManagersallFeedbacksを、それはあなたが参照しているものEmailまたは他の特性のいくつかされているかを知りません。あなたの現在のコードに基づいて、これらは実際のFeedbackMixModelクラスではなく、UserManagerオブジェクトの実際のプロパティのようです。

あなたは、これらの特性を表現するために、あなたのヘッダーをハードコーディング検討することもでき:

<thead> 
    <tr> 
     <th> 
      Email 
     </th> 
     <th> 
      Current Storage 
     </th> 
     <th> 
      Max Storage 
     </th> 
     <th> 
      Last Login Month 
     </th> 
     </tr> 
</thead> 

か、this approachに似た、あなたのコレクションの最初の要素ターゲットにしようとすることができます:

<thead> 
    <tr> 
     <th> 
      @Html.DisplayNameFor(x => Model.allUserManagers[0].Email) 
     </th> 
     <th> 
      @Html.DisplayNameFor(x => Model.allUserManagers[0].CurrentStorage) 
     </th> 
     <th> 
      @Html.DisplayNameFor(x => Model.allUserManagers[0].MaxStorage) 
     </th> 
     <th> 
      @Html.DisplayNameFor(x => Model.allUserManagers[0].LastLoginMonth) 
     </th> 
     </tr> 
</thead> 
+0

にあります。これはビューモデルに2つのモデルUserManagerとFeedbackのメールが含まれており、その他のプロパティはUserManagerで定義されています。 – sajiii

+0

'DisplayNameFor()'ヘルパーを使って適切なプロパティ名を解決しようとした場合と同様の方法を使用できます。 –

関連する問題

 関連する問題