简体   繁体   中英

Selected column in For Loop ASP.NET MVC3

I have a following function in a controller. It is called from index.cshtml . var relays works fine and I got the replays.count() . PRESETDETAILS has some columns from which I want to access specific columns in a loop (like I have mentioned in response.write ).

Kindly tell me how I can get the specific columns in the for loop.

    #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

you need to loop through them, you're simply select the same things over and over...

var relays = db.PRESETDETAILS.Where(t => t.PRESETID == id).ToList();
foreach (var replay in replays)
{
    Response.Write(string.Format("{0}", relay.ID));   
}

NOW... looking at your code:

  • always use ToList() at the end of the query;
  • ToList() actually makes the call to the database, until then, it's just a promise
  • Don't use Response.Write in your Controller, send the data to the View instead

your code should be:

public ActionResult btnApply_Click(int? id)
{
    var model = db.PRESETDETAILS.Where(t => t.PRESETID == id).ToList();
    return View(model);
}

in your View you can loop through the records

@model List<YOUR_CLASS>

<ul>
    @foreach(var replay in Model)
    {
        <li>@replay.ID</li>
    }
</ul>

I can see that some MVC conventions are not yet in place with you, and I know it can be somewhat overwhelm from someone that comes from WebForms or a linear code approach, but why don't you take some time and check the FREE available course about ASP.MVC in the ASP.NET Website?

See the videos in the right side of this page: http://www.asp.net/mvc

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM