2017-09-11 18 views
1

私はMVCを初めて使い慣れました。 私はビジュアルスタジオ2010とMVC 4を持っています。1つのビューで2つの異なる関連テーブルの2つのモデルを使用するMVC4

ほとんどの記事を読んで、私はモデルクラスを作成し、生成する(作成、削除、詳細、編集、インデックスビュー)コントローラを追加する必要があります。

ここで、CompanyとCompanyBranchesのような2つの関連するテーブルがあるとします。

モデル、コントローラ、およびビューを個別に作成することはできますが、2つのビューを組み合わせることはできません(関連するすべてのCompanyBranchesを表示するために、Companyの詳細ビューを変更します)。

どうすればいいですか?会社の支店モデルの参照を会社の詳細ビューに追加しようとしましたが、2つのモデルを追加するのはMVCでは許可されていないようです。あなたはこのためのモデルやViewModelに作成することができます

答えて

2

public ActionResult Create() 
{ 
    ViewModel model = new ViewModel(); 
    model.MyCompany = //populate your Company details class 
    model.MyCompanyBranches = //populate your CompanyBranchess class 

    return View(model); //return your view with two classes on one class 
} 
+0

私はIEnumerableを<@model書くときAttendanceProject.Models.ViewModel:

public class ViewModel { public Company MyCompany { get; set;} public CompanyBranches MyCompanyBranches { get; set;} //If you have multiple items, you can do this: public IList<CompanyBranches> LstCompanyBranches { get; set;} } 

は、これはあなたがあなたのビューに渡すものです>をクリックすると、ページを読み込むときに次のエラーが表示されます。辞書に渡されたモデルアイテムのタイプが「AttendanceProject.Models.CompanyRelatedBranches」ですが、この辞書には 'System.Collections.Generic.IEnumerable '1 [AttendanceProject.Models.CompanyRelatedBranches] '。 – user6218508

+0

これは@model AttendanceProject.Models.ViewModel CompanyRelatedBranchesのプロパティにアクセスするには、Model.CompanyRelate dBranches.Property –

+0

のように呼びますが、VSを@foreach(モデル内のvarアイテム){ @ Html.DisplayFor(modelItem => item.companyBranches.branchName);次のループエラーが発生しました。 } – user6218508

関連する問題