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 ...
随机推荐
- C++学习(四)
一.拷贝构造函数和拷贝赋值运算符1.拷贝构造:用一个已有的对象,构造和它同类型的副本对象——克隆.2.形如class X { X (const X& that) { ... }};的构造函数 ...
- YII中的session和cookie
session的使用 存储数据 Yii::app()->session["名"] = 值; 取数据 $变量 = Yii::app()->session["名& ...
- 用正则表达式解析XML
import java.util.regex.*; import java.util.*; /** * * <p>Title: Document</p> * * <p&g ...
- 《Think in Java》读书笔记一:对象
一.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的SmallTalk的五个基本特性,这些特性表现了一种纯粹的面向对象程序设计方式: 1.万物皆为对象. ...
- Mysql笔记【3】-SQL约束
SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). 我们将主要探讨以下几种约 ...
- struts 模型驱动
情景: 有一个用来处理用户的UserAction 类, 该动作类实现了 ModelDriven 接口. 当用户触发UserAction 动作时, ModelDriven 拦截器将调用相关UserAct ...
- 08_使用TCP/IP Monitor监视SOAP协议
[SOAP定义] SOAP 简单对象访问协议,基于http传输xml数据,soap协议体是xml格式.SOAP 是一种网络通信协议SOAP 即Simple Object Access Pr ...
- Codevs 3729 飞扬的小鸟
飞扬的小鸟 标签 动态规划 NOIp提高组 2014 难度 提高+/省选- 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小 ...
- Java面向对象程序设计--泛型编程
1. 为何要进行泛型编程? 泛型变成为不同类型集合提供相同的代码!省去了为不同类型而设计不同代码的麻烦! 2. 一个简单泛型类的定义: public class PairTest1 { public ...
- Plugin 'FEDERATED' is disabled 或 1067错误 启动错误与“服务 mysql 意外停止”解决方法
MYSQL启动报1067错误,系统日志中是“服务 mysql 意外停止” Mysql日志中则是:“Plugin 'FEDERATED' is disabled” 网我在网上找到解决方案:1.在MY.I ...