2016-12-31 3 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'ので、' == 'あなたのケースでのDateTimeを比較することトライン文句を言わない仕事。 TempDataによって公開されたオブジェクトをキャストして比較する必要があります。 'Convert.ToDateTime(" 01/01/0001 ")==(DateTime)TempData [" Fromdt "]' – Nkosi

+0

つまり、tempdataの値を正しくキャストするように頼んでいます。 –

+0

はい。公開されているテンポデータ値をキャストする必要があります – Nkosi

答えて

4

温度データはobjectを保存して公開しますので、DateTimeと比較しようとすると==は機能しません。

比較のために、TempDataによって公開されるオブジェクトをキャストする必要があります。

また、文字列をdatetimeに変換する必要もありません。あなたはDateTime.MinValue

if((Datetime)TempData["FromDate"] == DateTime.MinValue) 
関連する問題