pfe*_*eds 14 query-string razor asp.net-mvc-3
我创建了一个相当直接的页面,其中包含一个复选框:
@using (Html.BeginForm("MyController", "MyAction", FormMethod.Get))
{
@Html.CheckBoxFor(x => x.MyCheckBox)
<input type="submit" value="Go!" />
}
Run Code Online (Sandbox Code Playgroud)
URL填充MyCheckBox值两次!?因此:
MyAction?MyCheckBox=true&MyCheckBox=false
Run Code Online (Sandbox Code Playgroud)
如果复选框为true,它仅复制值.如果设置为false,它将仅在查询字符串中出现一次.
上面的代码是简化的,因为我有一些下拉菜单和表单上的文本框工作正常.我不认为我从这个问题中遗漏的代码有什么不寻常之处.
有没有人有类似的问题与查询字符串参数重复?
Ror*_*san 15
此行为是由复选框控件设计的.如果未选中,则标准HTML复选框控件不会传递任何值.这是不直观的.相反,ASP.Net复选框控件有2个元素,标准控件是可见的,还有一个值为'False'的隐藏控件.
因此,如果未选中该复选框,则会传递一个值:False
.
如果选中,则会有两个值,True
和False
.因此,您需要使用以下代码检查代码的有效性:
bool checkboxChecked = Request.QueryString["MyCheckBox"].Contains("True");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4541 次 |
最近记录: |