对于循环 ASP.NET MVC3 中的选定列



>我在控制器中有一个以下函数。它被称为从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