>我在控制器中有一个以下函数。它被称为从index.cshtml
. var relays
工作正常,我得到了replays.count()
. PRESETDETAILS
有一些列,我想从中循环访问特定列(如我在response.write
中提到的)。
请告诉我如何在 for 循环中获取特定列。
#region "Apply Preset Handlers"
public ActionResult btnApply_Click(int? id)
{
var relays = db.PRESETDETAILS.ToList().Where(t => (t.PRESETID).Equals(id));
for (int k = 0; k < relays.Count(); k++)
{
Response.Write(relays.Select(s => new relays{PRESETDETAILID = s.PRESETDETAILID }).ToString());
}
return View("Index");
}
#endregion
你需要遍历它们,你只是一遍又一遍地选择同样的东西......
var relays = db.PRESETDETAILS.Where(t => t.PRESETID == id).ToList();
foreach (var replay in replays)
{
Response.Write(string.Format("{0}", relay.ID));
}
现在。。。查看您的代码:
- 始终在查询末尾使用
ToList()
; -
ToList()
实际上调用数据库,在那之前,这只是一个承诺。 - 不要在控制器中使用
Response.Write
,而是将数据发送到视图
您的代码应该是:
public ActionResult btnApply_Click(int? id)
{
var model = db.PRESETDETAILS.Where(t => t.PRESETID == id).ToList();
return View(model);
}
在视图中,您可以循环浏览记录
@model List<YOUR_CLASS>
<ul>
@foreach(var replay in Model)
{
<li>@replay.ID</li>
}
</ul>
我可以看到一些 MVC 约定还没有到位,我知道来自 WebForms 或线性代码方法的人可能会有些不知所措,但你为什么不花点时间查看有关 ASP 的免费可用课程。MVC 在 ASP.NET 网站?
请参阅本页右侧的视频:http://www.asp.net/mvc