2010-06-25 49 views
1

我爲此做了一個快速搜索,並沒有提出任何問題。在MVC Views中,「以下行可以解決ASP.NET編譯器警告」問題?

<%-- The following line works around an ASP.NET compiler warning --%> 
<%: ""%> 

看起來像一個黑客攻擊的一位? 這是什麼意思,MS Dev Team是否正在努力尋求解決方案?

+0

我不知道答案,但該行只出現在基於VB.NET的項目中...... – 2010-06-25 01:37:03

回答

1

在ASP.NET論壇中有關於此的文章。沒有這一行,你可能會得到類似「__o未聲明」的編譯器警告。這項工作可以防止這些人出現。

從asp.net論壇...

ASP.NET Forums

我們終於獲得可靠 攝製,並確定了基本 問題。甲瑣碎REPRO看起來像 這樣:

<% if (true) { %> 
<%=1%> 
<% } %> 
<%=2%> 

爲了在<%在 設計時提供智能感知=%>塊,ASP.NET生成到一個臨時__o可變 和語言 分配(VB或C# )然後爲變量提供智能感知 。 這是在頁面編譯器看到 第一個<%= ...%>塊時完成的。但在這裏, 塊在if裏面,所以在 if關閉後,變量出 的範圍。我們最終產生 是這樣的:

if (true) { 
     object @__o; 
     @__o = 1; 
    } 
    @__o = 2; 

的解決方法是在頁面添加早期的虛擬 表達。例如。 <%=「」%>。這將不會渲染 任何東西,並且它將確保 __o在任何潛在的 'if'(或其他範圍)聲明之前被聲明爲Render方法中的頂層。

+0

謝謝,這就回答了第一個問題。有關他們是否會真正解決它的問題嗎? – 2010-06-25 02:20:31

+0

不知道,我甚至不知道Visual Studio引擎甚至提出瞭解決範圍問題的建議:/ – Tommy 2010-06-25 02:24:03

+0

當然,這個錯誤至少從VS 2005開始就是已知的,所以它看起來並不像快速解決VS方面的問題。 – Tommy 2010-06-25 02:33:37