2013-05-14 64 views
4

我在這裏實現元組在我view.But使用兩種機型正在以下錯誤傳入字典的模型項目類型爲「System.Tuple」?

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))); 
} 

有什麼建議嗎?

編輯: 我在這裏叫我的觀點裏兩個部分意見和收到此錯誤

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:我已經回答了這個問題(編輯)

+2

你可以(應該)當然寫一個特殊(查看)模型的場合... – 2013-05-14 10:01:36

回答

4

變化:

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

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

您正在將模型定義爲IEnumerable,但您在控制動作(索引)中的return語句中將List向下傳遞。如果您希望保留收藏在視圖中進行修改,還可以選擇傳遞IEnumerable

+0

這工作得很好Davies..Thanks..Look at my edit – bala3569 2013-05-14 10:08:55

1

對於新的錯誤,可以通過元組的特定部分的每個部分:

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

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

但是像@亨克 - holterman說,你應該作出具體查看模型。

1

回答我的編輯是@model Tuple<List<MvcApplication1.Models.EventRepository>, List<MvcApplication1.Models.SlideShow>>

因爲我們有兩個集合對象的元組返回視圖,我們定義在局部視圖兩種模式

相關問題