Html.Encode
新建Action,命名为HtmlEncodeDemo
将含有特殊字符的值传递给View视图
<%= ViewData["script"] %> 会在页面上弹出对话框
Html.Encode用于编码页面上的特殊字符。 (不会弹对话框,进行了编码)
标准写法: <%= Html.Encode(ViewData["script"]) %>
简单写法: <%: ViewData["script"] %> (主)
Html.Raw将字符串按原样输出在页面上。(会在页面上弹对话框)
标准写法: <%= Html.Raw(ViewData["script"]) %>
简单写法: <%= ViewData["script"] %> (主)
<%= %> 把字符串完整的输出在页面上,不编码
<%: %> 会对字符串进行编码
通过HtmlString防止被Encode编码化
<% HtmlString str = new HtmlString("<script>alert('HtmlString')</script>"); %>
<%: str %> 这里通过<%: %>来转换字符串的编码是无效的。
MvcHtmlString同HtmlString一样,可以让编码无效化
HtmlHelper扩展
扩展方法的三要素: 静态类、 静态方法、 this关键字
在Models中创建一个MyHtmlHelperEx类并设置为static 方法里一个参数永远是给的对象 this 对象 实例名
任意页面中引用命名空间 <%@ Import Namespace="MvcUserDemo.Models" %> 即可在页面中调用扩展方法 <%= Html.MyLabel("这是一个扩展方法") %>