2016-09-19 6 views
0

は、私は私の一時データ変数を設定するアクションメソッドを持っている私も、私はTempDataをAsp.net MVCの一時データ

@using (Html.BeginForm("Index1", "Employee", FormMethod.Post, new { @class = "navbar-right" })) 
{ 
    <h1> 
     <h1>@TempData["Name"]</h1> 
     @{ TempData.Keep("Name"); } 
    </h1> 
    <input type="submit" /> 
} 
にデータを永続化する方法を保つ使用ビューに対応している

[HttpGet] 
public ActionResult Index1() 
{ 
    if (TempData["Name"] == null) 
    { 
     TempData["Name"] = "Vinay"; 
    } 
    return View(); 
} 

初めて正しく動作しますが、f5を押してページを再度リフレッシュすると、TempData["Name"]がnullになります。どうして?

+0

コード '@TempData [「名前」]のあなたの先取特権を失ったかもしれ'値を読み取り、すぐに 'Session' –

+0

@StephenMueckeからそれを削除します - でビュー側では、データを永続化するためにtempdata.keepメソッドを使用しました。その値がすぐに削除されるべきではないと私は信じています。 –

+0

それは遅すぎます - あなたは既にそれを読んでいて、あなたが '@ {TempData.Keep(" Name ");というヒットした時点で既に破棄されています。 } 'コード行 –

答えて

0

これは常にで動作します。テストしました。リフレッシュ時(F5)には、Index1アクションメソッドを再度呼び出して、tempdata値を保存し、tempdataを使用してビューをロードします。

あなたはリフレッシュせずにビュー間を行き来場合、それはTempDataを値

関連する問題