2014-03-04 33 views
0

我在控制器中具有以下功能。它被稱爲index.cshtmlvar relays工作正常,我得到了replays.count()PRESETDETAILS有一些列,我想從中訪問循環中的特定列(如我在response.write中提到的那樣)。For循環中的選定列ASP.NET MVC3

請告訴我如何獲取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 

回答

0

你需要遍歷它們,你只需選擇一遍又一遍同樣的事情......

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,將數據發送到View代替

你的代碼應該是:

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.NET網站上關於ASP.MVC的免費課程?

請參見本頁面右側的視頻:http://www.asp.net/mvc

+0

感謝您的幫助,我會相應地更改代碼。你能解釋什麼是「{0}」嗎? – kaka

+1

@kaka''{0}「'將被替換爲','表示'relay.ID'後面的第一個屬性[更多閱讀](http://msdn.microsoft.com/zh-cn/library/system .string.format%28V = vs.110%29.aspx) –