4

ここでは、ビューで 2 つのモデルを使用するためのタプルを実装していますが、次のエラーが発生しています

The model item passed into the dictionary is of type 
'System.Tuple`2[System.Collections.Generic.List`1[MvcApplication1.Models.EventRepository],System.Collections.Generic.List`1[MvcApplication1.Models.SlideShow]]', 
but this dictionary requires a model item of type 
'System.Tuple`2[System.Collections.Generic.IEnumerable`1[MvcApplication1.Models.EventRepository],System.Collections.Generic.IEnumerable`1[MvcApplication1.Models.SlideShow]]'.

ここに私のビューがあります:

@model Tuple<IEnumerable<MvcApplication1.Models.EventRepository>, IEnumerable<MvcApplication1.Models.SlideShow>>
    ViewBag.Title = "Home Page";
}

コントローラ:

[HttpPost]
public ActionResult Index(string SearchParam)
{
EventRepository objcheckout = new EventRepository();
objcheckout.GetEventDetails(SearchParam);
SlideShow SS = new SlideShow();
SS.GetSlideDetail(SearchParam);
return View(Tuple.Create(objcheckout.GetEventDetails(SearchParam), SS.GetSlideDetail(SearchParam)));
}

なにか提案を?

編集: ここで、ビュー内で2つの部分ビューを呼び出して、このエラーを取得しています

 The model item passed into the dictionary is of type 
'System.Tuple`2[System.Collections.Generic.List`1[MvcApplication1.Models.EventRepository],System.Collections.Generic.List`1[MvcApplication1.Models.SlideShow]]', 
but this dictionary requires a model item of type 
'System.Collections.Generic.List`1[MvcApplication1.Models.EventRepository]'.

これが私の見解です

  @model Tuple<IEnumerable<MvcApplication1.Models.EventRepository>, IEnumerable<MvcApplication1.Models.SlideShow>>
       @Html.Partial("EventDetails")
       @Html.Partial("SlideShow")

および 部分図 1

@model List<MvcApplication1.Models.EventRepository>

部分図 2

@model List<MvcApplication1.Models.SlideShow>

Answer:この質問に答えました(編集)

4

3 に答える 3

1

新しいエラーの場合、タプルの特定の部分を各パーシャルに渡すことができます。

@Html.Partial("EventDetails", Model.Item1)

@Html.Partial("SlideShow", Model.Item2)

しかし、@henk-holterman が言ったように、おそらく特定のビュー モデルを作成する必要があります。

于 2013-05-14T10:15:21.230 に答える
1

私の編集に対する答えは@model Tuple<List<MvcApplication1.Models.EventRepository>, List<MvcApplication1.Models.SlideShow>>

オブジェクトの 2 つのコレクションをタプルとしてビューを返すため、両方のモデルを部分ビューで定義する必要があります。

于 2013-05-14T10:22:04.760 に答える