<%和<%之间有什么区别:

时间:2010-12-25 16:47:29

标签: asp.net asp.net-mvc-2

我在谷歌找不到任何东西,我想搜索条件太多了。 VS内置帮助只解释<%,这只是嵌入式代码。没有提到<%:

修改 我的书说,唯一的区别是<%:返回一个MvcHtmlString。为什么我们需要额外的符号<%:只是为了返回一些东西?

EDIT2: 一个例子:

<% Html.RenderAction("xxx", "xxx"); %>

没有返回任何内容,这就是为什么我们必须说&lt;%,因为它会htmlencode?但是如果我在.RenderAction()中呈现需要htmlencoded的东西呢?或者这没有意义吗?

感谢您的帮助!这真的有助于我理解asp.net。

3 个答案:

答案 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