在视图中迭代会话变量

时间:2016-11-14 20:02:26

标签: c# asp.net-mvc

我想知道如何迭代会话,我在动作方法中为其分配了一个字符串列表。 我希望通过for循环将会话中的每个元素显示为链接。 任何帮助表示赞赏。

这是我的索引方法:

 public ActionResult Index()
    {
        Session["num"] = Posts;
        //Posts = new List<string> { "element1", "element2", "element3" };
        return View();
    }

以下是我的观点:

  <h2>Index</h2>

@foreach (@item c in @Session["num"])
{

}

2 个答案:

答案 0 :(得分:1)

您需要转换会话变量,因为它是一个对象。

像...一样的东西。

@{ 
    var posts = Session["num"] as List<string>;
    if (posts != null) {
        foreach (var item in posts) {
            ...
        }
    }
}

答案 1 :(得分:1)

您已将此问题标记为asp.net-mvc,为什么不利用该框架?

<强>模型

class MyModel
{
    public List<string> Posts { get; set; }
}

查看(Index.cshtml)

@model MyModel

<h2>Index</h2>
@foreach(var post in Model.Posts)
{
    <span>@post</span>
}

<强>控制器

public ActionResult Index()
{
    var model = new MyModel();
    model.Posts = Posts; //Posts = new List<string> { "element1", "element2", "element3" };
    return View(model);
}