2017-08-13 4 views
0

私はasp mvc 5ウェブサイトを開発しています。私は、予定、相談、連絡先の3つのモデルを持っています。今私はuserdetailsというビューにこれらの3つのモデルのすべての詳細を表示したいと思います。私は、コントローラのアクションメソッド表示する複数のモデルを渡す

public ActionResult userdetails() 
{ 
    AllServices services = new AllServices(); 
    services.Appointments = dbcontext.Appointments.ToList(); 
    services.Consultations = dbcontext.Consultations.ToList(); 
    services.Contacts = dbcontext.Contacts.ToList(); 
    return View(services); 
} 

を作成し、ビューに私は

@model List<Astrology.ViewModels.AllServices> 
.... 
@foreach(var item in Model) 
{ 
    @item.Appointments 
} 

を作ったが、私はページのIAMを実行すると、ビューモデル

public class AllServices 
{ 
    public List<Contact> Contacts { get; set; } 
    public List<Appointment> Appointments { get; set; } 
    public List<Consultation> Consultations { get; set; } 
} 

を作成し、これまで を行っていますこのようなエラーが発生する

辞書に渡されたモデルアイテムは 'Astrology.ViewModels.AllServices'タイプですが、この辞書には 'System.Collections.Generic.List`1 [Astrology.ViewModels.AllServices]'タイプのモデルアイテムが必要です。

誰か助けてもらえますか? Iamはこれにこだわった。

+0

:(コードサンプルを追加)

EDITはこのような何かにあなたのコントローラを変更 。ビューを '@model Astrology.ViewModels.AllServices'に変更してください。そして、 '@foreach(Model.Appointmentsのvar項目){...' –

+0

モデルごとに1つのモデルすべてのデータを繰り返し表に表示したい場合はどうすればいいですか? – Abhijith

+0

最初のコメントをお読みください! –

答えて

0

エラーは、List of AllServicesモデルが必要なときに単一のAllServicesモデルを渡すだけであることを伝えています。 1つのモデルが必要になるようにビューを変更するか、単一のモデルをリストに入れる必要があります。あなたがAllServices` `のコレクションを期待ビューにAllServices``の単一のインスタンスを渡すので

public ActionResult userdetails() 
{ 
    List<AllServices> lservices = new List<AllServices>(); 
    AllServices services = new AllServices(); 
    services.Appointments = dbcontext.Appointments.ToList(); 
    services.Consultations = dbcontext.Consultations.ToList(); 
    services.Contacts = dbcontext.Contacts.ToList(); 
    lservices.Add(services); 
    return View(lservices); 
} 
+0

私にコードを表示できますか?私はすでにそのプロパティのリストを持つビューモデルを宣言しています。 – Abhijith

+0

編集してコードサンプルを表示します。 –

関連する問題