1

サーバー側にコードがあります:

@Html.EditorFor(m => m.RememberMe)

RememberMe私のモデルのブールフィールドです。そして、レンダリングされた HTML:

<input class="check-box" data-val="true" data-val-required="The Remember Me ? field is required." id="RememberMe" name="RememberMe" type="checkbox" value="true" />
<input name="RememberMe" type="hidden" value="false" />

同じ の隠しフィールドがありname="RememberMe"ます。この隠しフィールドの理由と目的がわかりません。

チェックボックスをオンにしてサーバー側でデバッグすると、モデルが正しくマッピングされました。私が得た: myModel.RememberMe = true. しかし、私が調べたときRequest["RememberMe"]。見ました"true,false"falseそれらは同じ名前であるため、非表示フィールドからのものである必要があります。

私の質問は次のとおりです。

  • 問題のfalse原因になりますか?
  • asp.net mvc がこのような隠しフィールドをレンダリングするのはなぜですか?
  • 隠しフィールドが必要ない場合。どうすればそれを取り除くことができますか? "true"だけで手に入れるのが一番いいと思いますRequest["RememberMe"]

ありがとうございました

4

1 に答える 1