2016-12-31 4 views
4

Я хочу проверить TempData внутри if состояние. Но я получаю сообщение об ошибке.Можно ли проверить TempDate внутри, если condtion в mvc5?

Моего контроллер

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

Temp хранилищ данных и выставляет 'object' так' == 'не будет работать, когда пытаешься сравнить с DateTime в вашем случае. вам нужно передать объект, открытый TempData, для сравнения. т.е.: 'Convert.ToDateTime (« 01/01/0001 ») == (DateTime) TempData [" Fromdt "]' – Nkosi

+0

Это означает, что вы попросите меня указать значение tempdata правильно –

+0

yes. вам нужно отбросить выставленное значение tempdata – Nkosi

ответ

4

Хранилище данных Temp и предоставляет object, так что == не работает при попытке сравнить с DateTime в вашем случае.

Вам необходимо отобразить объект, выставленный TempData, для сравнения.

Также нет необходимости преобразовывать строку в дату и время. Вы можете использовать DateTime.MinValue

if((Datetime)TempData["FromDate"] == DateTime.MinValue)