如何使用TempData传递guid

时间:2016-04-29 06:48:22

标签: asp.net-mvc entity-framework guid tempdata

我正在使用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();
}

2 个答案:

答案 0 :(得分:0)

您应该使用Session["uniqueIdForUser"],或者甚至将值与用户对象一起存储在数据库中的某个位置。请求密码重置和实际执行密码之间的时间可能很长。

答案 1 :(得分:0)

我知道,我来晚了。也许您有一些解决方案,但是对于那些遇到此问题的人来说。 也许

new GUID(Session["something"]);

会帮助