从控制器访问保存的模型会话对象到视图

时间:2015-12-04 13:45:31

标签: session asp.net-mvc-5

我已将模型保存到控制器中的会话对象中,但现在我不知道如何在我的视图中访问它。

public ActionResult Test()
{
    using (DefaultConnection db = new DefaultConnection())
    {
        var model = from u in db.Users select u;
        Session["User"] = model;

        var vm = Session["User"] as User;
        return View(vm);
    }
}

我在我的观点中尝试了这个,但我对MVC没有经验,所以我不确定我有多远。

@model IEnumerable<WebApplication1.Models.User>

@if (Model != null)
{
    foreach (var item in Model)
    {
        <h1>item.Username</h1>
    }
}

当我运行它时没有显示任何东西,但我知道那里有数据。

1 个答案:

答案 0 :(得分:1)

在您的控制器中:

public ActionResult Test()
    {
        using (DefaultConnection db = new DefaultConnection())
        {
            var model = from u in db.Users select u;
            Session["Users"] = model.ToList();
            return View();
        }
    }

在您的视图中:

@(foreach(var item in ((List<User>)Session["Users"]))
{
    item.Username
}

如果您想让自己的观点被输入&#39;使用类User,您必须将其发送到您的视图,如:

 public ActionResult Test()
{
    using (DefaultConnection db = new DefaultConnection())
    {
        var model = from u in db.Users select u;
        return View(model.ToList());
    }
}

在您的视图中包含此指令:

@model IEnumerable<SomeNamespace.User>

然后使用以下方式访问您的模型:

 @if (Model != null){
     foreach (var item in Model) {  item.Username }
 }