@Html内的函数解析。(一)
2016-12-06 17:00
176 查看
ActionLink
@Html.ActionLink("生成一个a标记", "Two", new { id = 1 }, new { @class = "class" })
ActionLink 函数可以生成一个<a><a/>标记 第一个参数为:<a>生成一个a标记<a/> 第二个参数为:<a href="Two">生成一个a标记<a/> 第三个参数为:<a href="Two?id=1">生成一个a标记<a/> 第四个参数为:<a href="Two?id=1" class="class">生成一个a标记<a/>
AntiForgeryToken
页面代码:@using (Html.BeginForm("Two", "Default", new { id=1}, FormMethod.Post, null)) { @Html.AntiForgeryToken() <input id="Submit1" type="submit" value="提交" /> }
Controller中代码:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Two(int id) { ViewBag.Title = "Post提交的Two"; return View(); }
用了AntiForgeryToken的提交方式,可以避免CSRF/XSRF攻击(这里就不详细说明了,以后会写的),前提是必须要用post提交方式(提交过去的时候无论传过去的是string还是int都能跳转,不知道为什么。网上看见有用jQuery写的,试了一下不知道为什么不好使。)
AttributeEncode和Encode
@Html.AttributeEncode("a b") @Html.Encode("c d")
先来看一下微软官方给的注释:
AttributeEncode:
AntiForgeryToken 方法会将引号 (“)、与号 (&) 和左尖括号 (<) 转换为等效的字符实体。结果应只用于双引号中的特性。 如果使用 AntiForgeryToken 方法对单引号中的特性进行编码,则可能会出现安全问题。
Encode:
如果将空格和标点符号等字符传入 HTTP 流中,则可能会在处理这些字符时错误地解释这些字符。 URL 编码会将 URL 中不允许的字符转换成字符实体等效项。 例如,当字符 < 和 > 嵌入到要在 URL 中传输的文本块中时,这两个字符将编码为 %3c 和 %3e。上面是微软给的注意事项,我感觉这就是一个把object或string类型的数据转换为在html上显示的东西,能增强安全性(反正微软是这么说的),弊端就是无论用哪一个,都需要程序员认真检查一下编译之后的东西,否则会很闹心
相关文章推荐
- 在Windows 8.1的IE 11中屏蔽双击放大功能
- HTML5调用摄像头实例
- Powershell 创建炫丽美观的Html报表
- 设计模式---状态模式在web前端中的应用
- Apple官网研究之使用Justify布局导航
- 关于前端的思考与感悟
- 又被事件冒泡坑了一把,这次要彻底弄懂浏览器的事件流
- 移动端点击事件全攻略,这里的坑你知多少?
- $q 实例分析 Angular 中的 Promise
- Angular directive 实例详解
- 关于浮动与清除浮动,你应该知道的
- 编写你的第一行 HTML 代码,来帮助蝙蝠侠写一封情书
- div 2 列 50%宽度布局
- div 2 列 50%宽度布局
- 通过Mootools 1.2来操纵HTML DOM元素
- jQuery Html控件基本操作(日常收集整理)
- WEB标准网页布局中尽量不要使用的HTML标签
- Flash 与 html 的一些实用技巧