:ASP .NET MVC CheckBoxForヘルパーは
@Html.CheckBoxFor(m => m.issueFlag,
new { id = "toggle-switch",
data_toggle = "toggle",
data_size = "normal",
data_on = "Issue on Invoice",
data_off = "No Issue on Invoice",
data_onstyle="danger",
data_offstyle="success",
data_width = "200" })
スイッチが前面に表示され、機能フォームが提出されると、値は常にfalseになります。チェックボックス、ドロップダウン、テキストボックスなどのフォーム内のその他のものは、コントローラで正しくキャプチャされます。コントローラーのPOSTアクションは、次のように宣言されています。
[HttpPost]
[AuthorizeRights(Rights = "Viper_ViewAudit,Viper_EditAudit")]
public ActionResult ShowImage(PDFViewer pdfViewerModel, string Command)
{
... content ...
}
どこか間違っていますか?なぜm.issueFlagは常にfalseですか?
(これ以上のコードが必要ですが、それ以外のものは何か分かりません)
更新 生成されたHTMLは、私は今も変更せずにヘルパーを使用せずにまっすぐinputタグをやって試してみました
<input data-off="No Issue on Invoice" data-offstyle="success"
data-on="Issue on Invoice" data-onstyle="danger" data-size="normal"
data-toggle="toggle" data-val="true"
data-val-required="The issueFlag field is required." data-width="200"
id="toggle-switch" name="issueFlag" type="checkbox"
value="true" />
<input name="issueFlag" type="hidden" value="false" />
です。
がそれをです(http://www.bootstraptoggle.com/) 。実際のHTMLはどのように生成されますか? –
モデルをビューに渡す前に、GETメソッドで 'issueFlag'の値を' true'に設定するとどうなるか確認できます( 'checked'属性が追加されるようになりました)。値を 'true'に設定しても、 'off'に設定していますか? –
これを行うと、トグルは(以前はなく)ビューでオンになっていますが、POSTメソッドではまだ 'false'を返します。 – JosephGage