1

模型:

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

控制器:

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


return View(itemsToShow.ToList());

名称列并按用户选择的字母顺序对其进行排序,效果很好(在调试模式下对其进行了测试 - 例如,如果用户选择“d”,它只会显示以“d”开头的项目。)

问题是当我在视图中添加“@model IEnumerable”和 foreach 循环时出现错误。

4

2 回答 2

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());
于 2013-10-22T09:49:41.967 回答
0

你为什么打电话.ToList()给你的itemsToShow?(我认为这只是重复)

更改List<string> items为最后一行IEnumerable<string> items并从中删除.ToList()

于 2013-10-22T09:57:35.927 回答