我正在使用TempData在同一个控制器中的两个动作方法之间传递guid,但是我在第二个方法中调用它来获取null。我无法弄清楚为什么我得到一个空值。
以下是我到目前为止所做的事情:
[HttpPost]
public ActionResult ForgotPassword(ForgotPasswordModel model)
{
var uniqueIdForUser = db.Database.SqlQuery<RequestResetPasswordModel>("spResetPassword @param1", new SqlParameter("param1", user.ADMIN_USERNAME)).OrderBy(m => m.UserId).FirstOrDefault();
TempData["uniqueIdForUser"] = uniqueIdForUser.Id;
}
[HttpPost]
public ActionResult ResetPassword(ResetPasswordModel model)
{
Guid uniqueid = (Guid)TempData["uniqueIdForUser"];
return View();
}
答案 0 :(得分:0)
您应该使用Session["uniqueIdForUser"]
,或者甚至将值与用户对象一起存储在数据库中的某个位置。请求密码重置和实际执行密码之间的时间可能很长。
答案 1 :(得分:0)
我知道,我来晚了。也许您有一些解决方案,但是对于那些遇到此问题的人来说。 也许
new GUID(Session["something"]);
会帮助