包含单个 Response.Write() 的代码块¶
ID: cs/asp/response-write
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- maintainability
- frameworks/asp.net
Query suites:
- csharp-security-and-quality.qls
包含单个 Response.Write()
的内联代码块可以使用内联表达式更清晰地编写。
ASP.NET 提供了通用的*内联代码*,使用语法“<%...%>
”。内联代码可以通过调用 Response.Write()
将内容输出到生成的 HTML 页面中。
在许多情况下,内联代码只有一行长,并且只执行对 Response.Write()
的单个调用。对于这种情况,对 Response.Write()
的调用可能比计算要嵌入的内容的代码更长。这使得理解代码的意图变得更加困难。
建议¶
ASP.NET 还提供了*内联表达式*,使用语法“<%=...>
”。内联表达式不需要调用 Response.Write()
。等号 (=) 是一种简洁的方式,用于告诉 ASP.NET 调用 Response.Write()
。
示例¶
此示例显示了一个页面,其中内联代码块使用 Response.Write()
写入内容。
<%@ Page Language="C#" %>
<html>
<body>
<p>2 + 3 = <%Response.Write(2 + 3)%></p>
</body>
</html>
在以下示例中,代码块被替换为内联表达式,因此更加简洁直接。
<%@ Page Language="C#" %>
<html>
<body>
<p>2 + 3 = <%=2 + 3%></p>
</body>
</html>
参考资料¶
Microsoft:在 .NET Framework 中介绍 ASP.NET 内联表达式。