autocomplete
属性がoff
に設定されたフォームがあります。フォームが送信されるとFirefoxはオートコンプリートをオフにしても隠し入力をキャッシュしています
<input type="hidden" value="0" name="Status" id="Status" data-val-required="The Status field is required." data-val-number="The field Status must be a number." data-val="true">
、この値はインクリメントされる。この形態の内部
は、(無関係であるべきであるASP.NET MVCのHtml.HiddenFor()
方法を用いて生成された、しかし、)非表示の入力要素がありますモデルはビューに戻されます。ステータス値をページに書き込むと、値が正しくインクリメントされていることがわかります。
ただし、この非表示の入力フィールドは常にキャッシュされます。正しい値を得ることは決してありません。私はautocomplete
属性を入力要素に直接設定しようとしましたが、成功しませんでした。
この非表示フィールドを取得して正しい値を取得するにはどうすればよいですか?私はJavascriptを使用しないことを好みます。
編集:より多くのコードを供給...
コントローラ
//This code is being executed, and the status is being incremented.
shippingOrder.Status = (shippingOrder.Status != (int)OrderStatus.Closed) ? shippingOrder.Status + 1 : shippingOrder.Status;
ビュー
@using (Html.BeginForm("Number", "Order", FormMethod.Post, new { id = "orderSummary", autocomplete = "off" })) {
...
@Html.HiddenFor(m => m.Status)
}
コントローラーアクション、具体的にはインクリメントされている部分、およびおそらくビューの投稿はどうですか? –
@AaronDaniels - 私はシナリオにあまりにも具体的な質問をしたくなかったが、いくつかのコードサンプルを追加した。私はこれを他のプロパティ(文字列など)でテストしました。私はコントローラの値でハードコーディングを試みましたが、隠れた入力はまだ更新されませんでしたが、HTML応答に値を書き込むと、私は必要な値を見ています。モデル*は正しい値を得ています。 –