型号:
public class TestModel
{
[Column]
public string Name { get; set; }
}
控制器:
TestModel[] metadata = context.GetTable<TestModel>().ToArray();
return View(itemsToShow.ToList());
名称列,并按字母方式对用户选择进行排序,工作正常(在调试模式下测试过 - 例如,如果用户选择'd',它只会显示以'd'开头的项目。)
问题是当我在视图中添加“@model IEnumerable”和foreach循环时,我收到错误。
答案 0 :(得分:1)
问题是您的视图期望模型的IEnumerable<TestModel>
类型,但您正在传递IList<String>
,如错误消息所示。
看起来您不应该将metadata
投影到控制器中的IList<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());
答案 1 :(得分:0)
为什么要在.ToList()
上致电itemsToShow
? (我认为这只是一个重复)
将List<string> items
更改为IEnumerable<string> items
并从最后一行删除.ToList()