HTML input标签的checked属性与Razor解析
在HTML中,input标签可以通过type属性设置为checkbox。同时,也就包含了一个checked属性。对于这个checked属性,有一个特别的地方就是,它可以不需要属性值就可以表示是否选择了。这背后的原因是源自于早期的HTML,checked是一个独立的boolean属性。
所以给1)checked赋值true
<input type="checkbox" checked="true" />
和2)直接写checked
<input type="checkbox" checked />
是等价的。
我在按照精通ASP.NET MVC4 和精通ASP.NET MVC5第5.4.2节中按照书中例子写了代码如下:
Discount:<input type="checkbox" checked ="@ViewBag.ApplyDiscount"/>
Express:<input type="checkbox" checked ="@ViewBag.ExpressShip"/>
Supplier:<input type="checkbox" checked ="@ViewBag.Supplier"/>
这里在checked 和 等号之间有一个空格,这就导致了razor在解析的时候直接把checked按照上面说的第二种方式解析了,这就导致了三个选项都被勾选,而且后面的ViewBag对象的属性被直接解释为了各自本来的意思。而不是按照书上所说,根据值得不同要么直接不解析checked属性,要么checked属性被赋值为checked即checked="checked"。上面的代码去掉空格就可以正确显示了。这也提醒我,在写checked属性时不要手贱打空格。
书里面在这一节最后一段第二句说的不明不白的,这里并不是翻译的问题,我找到了原书,原书写的也是不明不白。书中是这样说的:
“如果Razor插入False、null或者空字符串作为checked标签属性的值,那么,浏览器显示的复选框时已勾选的。但是,Razor在值为False或者null时,会完全栓除该属性标签”。这句话的意思是说,如果在Razor中checked被赋值为False、null或者空字符串时,浏览器会直接渲染成已勾选状态。而如果使用的是类似于上面ViewBag这种需要Razor求值的状况,就会自动把False、null和空字符串删掉这样就不会有勾选状态了。
附上在爆栈网上的提问。关于checked的详细看回答者。
HTML input标签的checked属性与Razor解析的更多相关文章
- HTML <input> 标签的 type 属性
HTML <input> 标签的 type 属性 HTML <input> 标签 实例 下面的表单拥有两个输入字段以及一个提交按钮: <form action=" ...
- input标签的hidden属性,四大常用JSTL标签库
input标签的hidden属性的应用及作用 定义:传输关于客户端/服务器交互的状态信息. Transmits state information about client/server intera ...
- input标签的accept属性、JQuery绑定keyDown事件
一. input标签的accept属性 当我们上传文件或者注册上传头像时,我们可以一般都是使用: <input type="file" id="my_file&qu ...
- HTML label标签的for属性--input标签的accesskey属性
本次示例是在firefox演示(如果其他浏览器对accesskey操作不成功的,请参考文章最后各浏览器下的快捷键)label的for属性是和input的id绑定,当我们点击input前面的文本标识会自 ...
- HTML中input标签的alt属性和title属性的比较
经常用到这两个属性,但是一直没有总结他们的区别.现在我对他们两个的用法做一下总结: 相同点:他们都会飘出一个小浮层,显示文本内容. 不同点: 1.alt只能是元素的属性,而title即可以是元素的属性 ...
- 【HTML】input标签中alt属性和title属性的比较
经常用到这两个属性,但是一直没有总结他们的区别.现在我对他们两个的用法做一下总结: 相同点:他们都会飘出一个小浮层,显示文本内容. 不同点: 1.alt只能是元素的属性,而title即可以是元素的属性 ...
- html中input标签的tabindex属性
当浏览者浏览网站时可以通过按TAB键在网页的链接中依次移动,这是一个相当方便实用的功能.但如果网页中链接太多,恐怕按TAB键就没什么作用了,这时不妨通过改变TAB键移动的顺序来突出重点,在某些重要页面 ...
- 使用js设置input标签只读 readonly 属性
先上代码: <html> <head> <title> test </title> <meta charset="utf-8" ...
- HTML <input> 标签的 maxlength 属性
前端的表单,需要进行验证. 结合JS表单验证框架,写了很多前端验证的代码. 其中,有这么一个需求:用户最多只能输入10个字符. 按照惯性,肯定是会去写JS表单验证了. 实际上,根本没有必要. HTML ...
随机推荐
- 重温css系列01
2016-01-07——解决背景层透明度的问题 需要ie9+ 问题:如果我对div设置opacity: 0.8;这个透明属性后 希望内容不发生改变怎么弄? A:做两层,或者rgba 解决后的效果图: ...
- Click ListView Item跳转Activity
今天学习了ListView点击Item跳转,修改上一篇代码bindData方法 lv.setOnItemClickListener(new OnItemClickListener() { public ...
- Android no such table (找不到表)
今天在学习项目时,一直报错no such table Users.说找不到Users表.我就纳闷了,数据库是复制过去的,检查表名也没有写错.这是怎么回事呢?检查了半天才发现原来是数据库的路径错了. 我 ...
- IP-MAC绑定导致网络故障
前段时间将一台服务器A的服务迁移至了另外一台服务器B,外网IP地址也顺带迁移过来了,结果网络出现了问题. 其中内网是畅通的,但是外网IP怎么都连不上另外一台路由C(B和C是在一个交换机下的,网段也相同 ...
- Ajax实现页面后台button click事件无刷新弹窗
很多人在做链接弹出新窗口的时候,都习惯用Response.Wrtite("<script>window.open('a.aspx')</script>") ...
- windows2008 x86 安装 32位oracle
1.windows 2008 升级到sp2补丁 下载地址 : http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=15278 2. ...
- YYKit之YYText
原文:http://www.cnblogs.com/lujianwenance/p/5716804.html 本文的目的是希望能帮助到我们更快的熟悉和学习YYText的结构和实现的思路,如有不正确 ...
- Runtime 在IOS中的详细使用
因为之前写东西的时候,都在未知笔记中,所有大家没有看到过我的文章,今天就开始使用博客园来进行和大家沟通.好了,废话不那么多了,转入正题.下面我把runtime 给大家介绍一下. ### 一.runti ...
- redis 安装及配置
一.安装Redis 1.到官网下载redis最新版本,我下载的是 http://redis.io/ 2.拷贝redis-3.0.3到/usr/local目录 3.解压缩sudo tar -zxf re ...
- 使用自定义 jQuery 插件的一个选项卡Demo
前几天闲着没事,想着编写一个 jQuery 插件,或许这将是一个美好的开始. 这里是html页面: <!DOCTYPE html> <html lang="en" ...