6

私は使っている

TempData["hdn"] = "1";

コントローラーで

これを使えば

 @{
      var hdn = (string)TempData["hdn"];
  }

View ではTempData["hdn"]、POST で null を取得する際の値。ビューでこのコードをスキップすると、POST に残ります。なぜこれが起こっているのですか?

4

4 に答える 4

10

TempData 値は、読み取り後にクリアされます。

ビューで値を読み取った後にコントローラーに値を戻したい場合は、非表示フィールドに値を含めてから、フォーム値から読み取る必要があります。

何かのようなもの:

<input type="hidden" name="hdn" value="@hdn" />

次に、コントローラーで次のことができます。

var hdn = Request.Form["hdn"]

HTH

于 2013-08-28T12:06:41.993 に答える
5

TempDataキーと値のセットは、呼び出された後に削除されます。Satpal は Keep について話しましたが、削除せずに取得するたびに明確にしたい場合は、Peek を使用することもできます。

TempData.Peek(String)

例:

var hdnNotDeleted = TempData.Peek["hdn"];

Peek に関する MSDN ドキュメント

于 2015-11-02T10:55:05.340 に答える