2009-08-27 138 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來驗證此情況。

相關問題