2009-08-27 57 views
3

我碰到其中一个第三方组件似乎与Response.Write会干扰和内Response.Write("")造成任何内容之前任何其他的HTML渲染的问题。例如:Response.Write和<%= %>之间的实际区别是什么?

<html><head><title><% Response.Write("HELLO WORLD") %> 

将呈现为

HELLO WORLD<html><head>... 

但是,使用<%= %>块呈现任何内容,将工作正确。下面的代码将很好地工作:

<html><head><title><%="HELLO WORLD"%> 

我一直以为<%=只是简写Response.Write。从我已经能够找到MSDN我现在明白了,这是<%=最终转换到的Response.Write,但显然有一些步骤其间。

有没有人猜测为什么两个会呈现不同或指向我的一些文档/信息,说明如何处理<%= %>块?

更新:导致该问题的控件是从2009年Q1发布的Telerik AjaxManager控件。升级到Q2控制解决了问题。

不幸的是我没有访问源代码,所以我一直无法弄清楚为什么控制是造成这种行为。问题已经解决,但我仍然很好奇为什么它首先存在。

+0

哪个第三方组件您使用的? – madcolor 2009-08-27 16:28:49

+0

这个问题还真没有什么意义......永远不要发生在我身上... – voyager 2009-08-27 16:32:02

+0

@voyager,我完全同意;这没有意义。我会质疑我的理智,但另一个开发者已经能够在他的本地机器上复制行为(同一个项目)。 @madcolor很多Telerik控件(ajax,模式弹出框,网格); – 2009-08-27 16:57:35

回答

6

<%= “foo” 的%>变成回复于( “foo” 的);一旦编译完成。您可以通过挖掘ASP.NET Temporary Files文件夹并使用Reflector反编译您找到的dll来验证此情况。

相关问题