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

asp.net – 如何从FormCollection中获取复选框值?

发布时间:2020-12-16 07:37:22 所属栏目:asp.Net 来源:网络整理
导读:我有一个复选框和按钮: @using(Html.BeginForm()){ div id="search-block" input type="checkbox" name="showAll" id="showAll"Include completed input type="submit" value="Apply"/ /div} 控制器中的第二件事: [HttpPost]public ActionResult Index(For
我有一个复选框和按钮:

@using(Html.BeginForm())
{
    <div id="search-block">
        <input type="checkbox" name="showAll" id="showAll">Include completed
        <input type="submit" value="Apply"/>
    </div>
}

控制器中的第二件事:

[HttpPost]
public ActionResult Index(FormCollection collection)
{
    var showAll = collection["showAll"];
    TempData["showAll"] = showAll;

    ... 
    something
    ...
}

它实际上是有效的,但是:

如果没有选中复选框,我收到空(不打扰我).

如果选中复选框,我将从FormCollection接收“on”,这不是我需要的.我想收到真假.

我怎样才能做到这一点?

解决方法

<input type="checkbox" name="showAll" id="showAll">Include completed

将发布“开”或“关”的值.

这个WONT绑定到一个布尔值,

要接收布尔值,您可以使用HTML Helper Checkbox
喜欢

@Html.CheckBox("showAll")
<label for="showAll" style="display:inline">Include completed</label>

更新:

If checked the html helper will post back "true,false" and if
unchecked as "false"

您可以将此解决方法作为

bool MyBoolValue= Convert.ToBoolean(collection["showAll"].Split(',')[0]);

这是因为Html帮助器类添加了一个额外的隐藏字段来保存复选框的状态

(编辑:李大同)

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

    推荐文章
      热点阅读