加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – MV3复选框的重复查询字符串值(true,false表示

发布时间:2020-12-15 23:38:52 所属栏目:asp.Net 来源:网络整理
导读:我创建了一个相当简单的页面,带有一个复选框: @using (Html.BeginForm("MyController","MyAction",FormMethod.Get)){ @Html.CheckBoxFor(x = x.MyCheckBox) input type="submit" value="Go!" / } 该URL填充了MyCheckBox值两次!因此: MyAction?MyCheckBox=
我创建了一个相当简单的页面,带有一个复选框:
@using (Html.BeginForm("MyController","MyAction",FormMethod.Get))
{
  @Html.CheckBoxFor(x => x.MyCheckBox)
  <input type="submit" value="Go!" />      
}

该URL填充了MyCheckBox值两次!因此:

MyAction?MyCheckBox=true&MyCheckBox=false

如果复选框为true,则只复制该值.如果设置为false,则只会在查询字符串中出现一次.

上面的代码是简化的,因为我有几个下拉菜单和一个工作正常的表单上的文本框.我不认为我从这个问题中遗漏的代码有什么不寻常的.

有没有人遇到与查询字符串参数重复的类似问题?

解决方法

这种行为是通过复选框控件的设计.如果没有选中标准的HTML复选框控件,则不传递任何值.这是不直观的.相反,ASP.Net复选框控件有2个元素,标准控件是可见的,也是一个值为“False”的隐藏控件.

因此,如果未勾选该复选框,将会有一个值传递:False.
如果它被选中,将有两个值True和False.因此,您需要使用以下代码来检查代码中的有效性:

bool checkboxChecked = Request.QueryString["MyCheckBox"].Contains("True");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读