Asp.net-Mvc-3
CheckBox 的 MV3 重複查詢字元串值(true,false 為布爾值)
我創建了一個帶有復選框的相當簡單的頁面:
@using (Html.BeginForm("MyController", "MyAction", FormMethod.Get)) { @Html.CheckBoxFor(x => x.MyCheckBox) <input type="submit" value="Go!" /> }該 URL 填充了兩次 MyCheckBox 值!?因此:
MyAction?MyCheckBox=true&MyCheckBox=false如果復選框為真,它只會複製該值。如果設置為 false,它將僅在查詢字元串中出現一次。
上面的程式碼被簡化了,因為我在表單上有幾個下拉菜單和一個可以正常工作的文本框。我認為我從這個問題中遺漏的程式碼沒有什麼不尋常的地方。
有沒有人遇到過查詢字元串參數重複的類似問題?
此行為是由複選框控制項設計的。如果未選中,標準 HTML 複選框控制項不會傳遞任何值。這是不直覺的。相反,ASP.Net 複選框控制項有 2 個元素,一個可見的標準控制項和一個值為“False”的隱藏控制項。
因此,如果未選中該複選框,則將傳遞一個值:
False.如果選中,將有兩個值,
True和False。因此,您需要使用以下程式碼來檢查程式碼的有效性:bool checkboxChecked = Request.QueryString["MyCheckBox"].Contains("True");