2016-04-29 93 views
0

我正在使用TempData在同一控制器內的兩個操作方法之間傳遞guid,但在第二個方法中我調用它的時候我得到了null。我無法弄清楚爲什麼我我得到一個空值。
這是我能到目前爲止做:如何使用TempData傳遞guid

[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

何時調用ResetPassword? –

+0

@BonMacalindong @posonMacalindong它的一種後期方法,當用戶點擊提交按鈕時調用 – sumedha

+0

因此,從ForgotPassword視圖中,您將其發佈到ResetPassword?將[HttpPost]置於ResetPassword。 –

回答

0

您應該使用Session["uniqueIdForUser"]對於這一點,甚至在某個數據庫存儲與用戶對象的值。請求重置密碼和實際執行密碼之間的時間可能很長。

+0

我已經嘗試過會話,但它仍然給我一個空引用異常。我已經將值存儲在數據庫表中,但我想比較會話對象中的值和數據庫值,並相應地更新數據庫中的記錄。 – sumedha

+0

在哪一行(確切地說!)是否發生了NullReferenceException?如果需要,在問題中添加/編輯代碼以顯示此內容。 –

+0

它在問題中已經存在,在我調用會話時在ResetPassword方法中 – sumedha

相關問題