2つのモデルがあり、レイアウトページとユーザーが訪れるすべてのページにデータを表示する必要があります。これらの2つのモデルはそれらの間に関係がないので、私はどんな結合も必要ありません。2つの表のデータをレイアウトページに表示MVC 5
これは、私はまた、それらの両方が含まれていますが、これは正しい方法
public class Layout
{
public Notification Notification { get; set; }
public Task Task { get; set; }
}
と私のレイアウトページ
である場合、私はわからない」モデルを作成し、私のコントローラpublic ActionResult Index()
{
var notification = (from n in db.Notification
where n.NotificationIsSeen == true
select n);
var task = (from t in db.Task
where t.TaskIsSeen == true
select t);
return View();// I not sure how to return both of queries
}
です
@model IEnumerable<MyprojectName.Models.Layout>
//other code
@foreach (var item in Model)
{
<li>@Html.DisplayFor(modelItem => item.Notification.NotificationSubject) </li>}
//other code
@foreach (var item in Model)
{
<li>@Html.DisplayFor(modelItem => item.Task.TaskSubject)
</li>
}
私は他の同様の質問を見ましたが、それらは結合テーブルで動作します。 両方のテーブルのデータを返す際に助けが必要です。あらかじめありがとうございます。
あなたのクエリは、コレクションを返すので、あなたのビューでモデルのリスト型を宣言してくださいモデルニーズpublic class Layout {パブリックIEnumerable <通知>通知{取得;セット; } publicIEnumerableタスク{get;セット; }} 'を呼び出し、' Layout'の単一のインスタンスをビューに返します。 –
必要なものについては混乱があります。あなたのモデルは単一の 'Notification'と' Task'を持っていますが、あなたのアクションメソッドには両方のコレクションがあります。あなたはviewmodelのコレクションが必要であることを表示します。あなたは意図された行動が何であるかを明確にすることができます – Nkosi
Stephen Muecke。 Layoutのインスタンスを返すのはどういう意味ですか?ありがとうございました – touinta