在MVC 5中保存用户状态

时间:2014-10-22 09:28:00

标签: c# asp.net-mvc asp.net-mvc-3

更新 - 这个问题最初与会话状态无关。

我正在尝试在MVC 5中更改用户状态中的变量

// POST: /Account/Registered
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Registered(loggedinViewModel model, ApplicationUser user, string selcteditem)
{
    if (ModelState.IsValid)
    {
        var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new UserDb()));                
        var store = new UserStore<ApplicationUser>(new UserDb());
        var currentUser = manager.FindById(User.Identity.GetUserId());

        var newCID = clubIDMethod();

        var ctx = store.Context as UserDb;

        ctx.Users.Attach(user);

        SelectedNewCID(model, newCID);

        ViewBag.newCID = (model.SelectedGodCID);

        user.CID = ViewBag.newCID;

        currentUser.CID = user.CID;                

    }
    return View(model);  
}

我真的不确定状态是什么没有被保存,currentUser.CID正在更新但是当我去其他地方时它仍然被设置为原始值

请帮助谢谢

1 个答案:

答案 0 :(得分:0)

你可以在global.aspx上添加一个类似这样的会话

    protected void Session_Start(Object sender, EventArgs e)
    {
        string temp = string.Empty;
        HttpContext.Current.Session.Add("_SessionItem", temp);
    }

然后你需要用这样的

指定CID
Session["_SessionItem"] = ViewBag.newCID;

这会将字符串保存在会话中。

然后你需要在使用会话时阅读。