更新 - 这个问题最初与会话状态无关。
我正在尝试在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
正在更新但是当我去其他地方时它仍然被设置为原始值
请帮助谢谢
答案 0 :(得分:0)
你可以在global.aspx上添加一个类似这样的会话
protected void Session_Start(Object sender, EventArgs e)
{
string temp = string.Empty;
HttpContext.Current.Session.Add("_SessionItem", temp);
}
然后你需要用这样的
指定CIDSession["_SessionItem"] = ViewBag.newCID;
这会将字符串保存在会话中。
然后你需要在使用会话时阅读。