是<%:和<%=与embedded代码(expression式)块相同的东西
刚开始使用MVC 2,我注意到他们在他们的初学者模板中使用
<%: Html.ActionLink("Home", "Index", "Home")%>
我确信在MVC 1中是这样的
<%= Html.ActionLink("Home", "Index", "Home")%>
它们是一样的吗? 如果是这样,为什么从等号改为冒号。
冒号语法意味着您将自动进行html编码: http : //haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx
他们不能对所有现有的<%=
块进行html编码,因为已经正确编码的东西(希望大多数项目在那里)看起来很奇怪。
<%=
用于写入输出缓冲区。
<%:
用于写入输出缓冲区,在HTML编码内容之后…除非在返回的对象上实现了IHtmlString
接口。
Scott Guthrie在这个主题上有一个很好的post: http : //weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-净-4-和-ASP净MVC-2.aspx
如果输出已经被转义,可以通过在返回的对象上实现IHtmlString
接口来防止双重编码。 http://msdn.microsoft.com/en-us/library/system.web.ihtmlstring.aspx
ASP .NET 4引入了<%:在输出到屏幕前编码输出的语法。 ASP MVC已经对此进行了编码,但是为了更加明确,他们开始使用这个语法来清楚地说明,只要你看到<%:你可以确定输出将被正确编码。
- jQuery的Ajax调用和Html.AntiForgeryToken()
- ASP.NET MVC 2.0在jqgrid中执行search
- ASP.Net MVC – 从HttpPostedFileBase中读取文件而不保存
- 如何在ASp.net MVC 2中将RadioButtonFor()设置为默认值
- ASP.NET MVC和IEcaching – 操纵响应头无效
- 将子目录添加到ASP.Net MVC中的“查看/共享”文件夹并调用该视图
- ASP.NET MVC 2.0 JsonRequestBehavior全局设置
- 有没有人为ASP.NET MVC实现RadioButtonListFor <T>?
- 如何实施徽章?