MVC3 checkbox 取值

22 篇文章 0 订阅

 

通常登陆的时候,会有一个选择框“记住我”,以便用户下次登陆的时候无需再次输入账号信息

MVC3中,可以绑定一个model的一个bool字段,由系统自动处理,然而,大多时候,我们更喜欢自己写标签,例如:

<input id="persist_box" data-val="true" value="true" name="chk_persist" type="checkbox" class="uiInputLabelCheckbox" />

那么在controller中:

  public ActionResult Login(FormCollection c)
     {

            ....

            bool cookiePersist = c["chk_persist"] == "false";

             ......

      }

当checkbox处于勾选状态时,此值可以取到;相反,则这个地方会有异常抛出,因为在FormCollection中不存在chk_persist。为啥mvc3不把这个放到里面呢?没研究不清楚。

回头看看Model绑定的情况,发现在生成的html中

除了这段:<input id="persist_box" data-val="true" value="true" name="chk_persist" type="checkbox" class="uiInputLabelCheckbox" />

后面又多了了一个隐藏的input,并且和上面的一个name相同

<input name="chk_persist" type="hidden" value="false" />

我们也如此办,添加隐藏的input,此种情况下:

1.   如果checkbox选择了,那么提交后,在controller中

     public ActionResult Login(FormCollection c)
      {

            ....

            string cookiePersist = c["chk_persist"] ;

             ......

       

     cookiePersist = "true,false"

2 ,如果checkbox未被选中提交,则只有隐藏的那个input内容被提交

    那么cookiePersist = “false”

结论通过cookiePersist的值的不同,可以判断checkbox的状态是否为选中

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值