我在谷歌找不到任何东西,我想搜索条件太多了。 VS内置帮助只解释<%,这只是嵌入式代码。没有提到<%:
修改 我的书说,唯一的区别是<%:返回一个MvcHtmlString。为什么我们需要额外的符号<%:只是为了返回一些东西?
EDIT2: 一个例子:
<% Html.RenderAction("xxx", "xxx"); %>
没有返回任何内容,这就是为什么我们必须说&lt;%,因为它会htmlencode?但是如果我在.RenderAction()中呈现需要htmlencoded的东西呢?或者这没有意义吗?
感谢您的帮助!这真的有助于我理解asp.net。
答案 0 :(得分:3)
使用<%:
你已经告诉页面HtmlEncode&lt;%:%&gt;内的内容标签。它出现在.Net 4中。
编辑:是的,MvcHtmlString已经是HtmlEncoded。
PS:如果您希望(有时)不将文本编码为旧版本的HTML标记,但您必须知道如果该数据是由用户提供的,则会将其视为可能的安全威胁用作对您的网站/应用程序施加XSS攻击的漏洞利用。
答案 1 :(得分:2)
两者都用于在视图上呈现文本,但是当您使用&lt;%:时,文本将自动进行HTMLEncoded。
答案 2 :(得分:2)
如其他答案所示,它适用于Html编码。 Here's a blog entry explaining