简体   繁体   中英

Access dictionary in MVC view

This is my Controller code where I have added the details for a script run and passed it to my View. How do I access it in my view and convert it into a table form as it is in dictionary? I have tried few things but didnt look promising, so I'm not posting the code for view. Any generic solution will do.

public ActionResult tab()
    { 

//Febuary runs


        ScriptRun run1 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-1));
        ScriptRun run2 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-1));

        //January runs
        ScriptRun run3 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-2));
        ScriptRun run4 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-2));

        //
        ScriptRun run5 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-1));
        ScriptRun run6 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-1));
        ScriptRun run7 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-1));
        ScriptRun run8 = new ScriptRun("IE","Tech2",DateTime.Now.AddMonths(-1));


        List<ScriptRun> janRuns = new List<ScriptRun>();
        janRuns.Add(run3);
        janRuns.Add(run4);

        Dictionary<string,List<ScriptRun>> runs = new Dictionary<string,List<ScriptRun>>();
        runs.Add("Jan",janRuns);

        return View(runs);



    }

Define your model as:

@model Dictionary<string, List<string>>

And then traverse on your model like that (you can change HTML to table formatting):

@foreach (KeyValuePair<string, List<ScriptRun>> item in this.Model)
{
    <h1>@item.Key</h1>
    <ul>
        @foreach (ScriptRun scriptRun in item.Value)
        {
         <li>@scriptRun.SomePropertyFromScriptRun</li>
        }
    </ul>
}

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