2016-12-31 5 views
4

Je veux vérifier TempData à l'intérieur de if condition. Mais je reçois une erreur.Est-il possible de vérifier TempDate à l'intérieur si condtion en mvc5?

Mon contrôleur

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); 
} 

Pourquoi je reçois des valeurs de modèle dans TempData signifie que je veux transmettre les valeurs que je reçois dans TempDate à une autre action. Donc seulement j'utilise TempData. Maintenant, je reçois une erreur. L'erreur est

L'opérateur == n'est pas appliqué entre l'objet et System.DateTime.

J'ai essayé de mon mieux pour expliquer le problème. Donc, tout le monde m'aider à résoudre ce problème. Et j'ai besoin de TempData uniquement pour ne pas stocker les valeurs directement dans la variable. Je peux en mesure de stocker la valeur dans la variable comme

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

Mais mon obligation de stocker les valeurs dans TempData seulement est mon exigence parce que je dois utiliser que les valeurs TempData dans une autre action. J'ai besoin pour un autre but

+1

magasins de données Temp et un 'object' expose donc' '== ne fonctionnera pas quand tryin à comparer à DateTime dans votre cas. vous avez besoin de lancer l'objet exposé par TempData pour faire votre comparaison. ie: 'Convert.ToDateTime (" 01/01/0001 ") == (DateTime) TempData [" Fromdt "]' – Nkosi

+0

Cela signifie que vous me demandez de lancer la valeur de tempdata droite –

+0

oui. vous devez convertir la valeur de tempdata exposée – Nkosi

Répondre

4

Les données temporaires stocke et expose un object alors == ne fonctionnera pas en essayant de comparer à DateTime dans votre cas.

Vous devez diffuser l'objet exposé par TempData pour effectuer votre comparaison.

De même, inutile de convertir la chaîne en date/heure. Vous pouvez utiliser DateTime.MinValue

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