HtmlHelper扩展 及 页面编码化

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("这是一个扩展方法") %>

原文地址:https://www.cnblogs.com/Sea1ee/p/5971333.html