我正在尝试创建一个局部视图来显示一些数据。我的控制器接受string itemID
并基于它执行查询。调用局部视图时,它会一遍又一遍地显示相同的记录。
注意:出于安全目的,我更改了对象的名称。
[ChildActionOnly]
public ActionResult someAction(string itemID = "")
{
//Empty itemID
if(string.IsNullOrEmpty(itemID))
{
return RedirectToAction("Index", "Search");
}
var model = _db.someTable
.Where(r => r.itemID == itemID)
.OrderBy(r => r.col1)
.ThenBy(r => r.col2)
.Take(20);
return PartialView("_myView", model);
}
我尝试删除OrderBy
andThenBy
方法,但结果保持不变,(顺序无关紧要,因为它们是重复的......)。当我删除该.Where
方法时,它按预期工作并显示 20 条不同的记录(尽管没有以任何方式过滤)。
我的视图是由 Visual Studio 使用 List 模板创建的。.Where
通过从 LINQ 语句中删除该方法已证明该视图有效。以下是视图的重要部分:
@model IEnumerable<MyApp.Models.OperationData>
.
.
.
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.some column)
</td>
.
.
.
关于这个查询有什么问题的任何想法?
编辑:尝试了其他 LINQ 语法并得到了相同的结果:
var model = from r in _db.someTable where r.itemID == itemID select r;