2013-10-22 46 views
1

型號:MVC剃刀傳遞到字典的模型產品類型列表字符串,但本詞典需要的IEnumerable

public class TestModel 
{ 
    [Column] 
    public string Name { get; set; } 
} 

控制器:

TestModel[] metadata = context.GetTable<TestModel>().ToArray(); 


return View(itemsToShow.ToList()); 

名稱列和alphabethically排序,用戶選擇哪個工作正常(已經在調試模式下進行了測試 - 例如,如果用戶選擇'd'它只會顯示以'd'開始的項目。)

問題是當我添加「@model IEnumerab樂「和視圖中的foreach循環,我得到的錯誤。

+1

你'items'收集類型'名單'刪除.ToList(),不'名單'。 –

回答

1

問題是您的視圖預期爲模型的IEnumerable<TestModel>類型,但您傳遞的錯誤消息是IList<String>

看起來你不應該在你的控制器中突出metadataIList<String>並傳遞到視圖,而是應該被過濾metadata

IEnumerable<TestModel> metadata = context.GetTable<TestModel>().ToArray(); 

var itemsToShow = string.IsNullOrEmpty (page) 
    ? metadata 
    : metadata.Where(x => x.Name.StartsWith(page, true, null)); 

ViewData["currentPage"] = page ?? string.Empty; 

return View(itemsToShow.ToList()); 
0

爲什麼你對你的itemsToShow打電話.ToList()? (我認爲這只是一個重複)

變化List<string> itemsIEnumerable<string> items和最後一行

相關問題