2016-12-31 81 views
4

我想檢查TempData裏面的if條件。但我得到一個錯誤。如果mvc5中存在condtion,是否可以檢查TempDate?

我的控制器

public ActionResult Customer(PurchaseViewModel purchaseviewmodel) 
{ 
    TempData["Fromdt"] = purchaseviewmodel.FromDate; 
    TempData["todt"] = purchaseviewmodel.ToDate; 
    If(TempData["Fromdt"] == Convert.ToDateTime(「01/01/0001」)&& TempData["todt"] == Convert.ToDateTime(「01/01/0001」)) 
    { 
     //... 
    } 
    else 
    { 
     //... 
    } 
    return View(Customer); 
} 

爲什麼我在TempData的獲取模型值意味着我想通過它我得到的TempDate到另一個動作的值。所以只有我使用TempData。現在我得到錯誤。錯誤是

運算符==不應用於對象和System.DateTime之間。

我盡我最大的努力來解釋這個問題。所以任何人都可以幫助我解決這個問題。我需要TempData只是不將值直接存儲在變量中。我能值存儲在變量像

var fmdt = purchaseviewmodel.FromDate; 
    var todt = purchaseviewmodel. ToDate; 

但我的要求存放在TempData的值僅是我的要求,因爲我需要使用在另一個動作TempData的值。我需要另一個目的

+1

溫度數據存儲和暴露了'object'所以''==當試着比較日期時間在你的情況不會工作。您需要投射TempData公開的對象來做比較。即:'Convert.ToDateTime(「01/01/0001」)==(日期時間)TempData [「Fromdt」]' – Nkosi

+0

這意味着你要求我把tempdata值正確地輸入 –

+0

是的。您需要投出暴露的tempdata值 – Nkosi

回答

4

臨時數據存儲和公開object所以==不會工作時,試圖比較DateTime在你的情況。

您需要轉換TempData公開的對象以進行比較。

也不需要將字符串轉換爲日期時間。您可以使用DateTime.MinValue

if((Datetime)TempData["FromDate"] == DateTime.MinValue) 
相關問題