2011-11-16 55 views
1

我有這樣的代碼片段ASP.NET文字單引號

<li class='<asp:Literal ID="litTest1" runat="server" />'>stuff</li> 

在我的電腦,如果我嘗試構建應用程序在我的VS2010裏面,它給出了「在目前情況下不存在」錯誤並且不在Designer.cs文件中註冊該控件。

當我從單引號中刪除它,並將它放在代碼中的某處時,它可以很好地工作。另外,如果我在designer.cs中手動編寫這些控件,它編譯並工作得很好。

最奇怪的是,代碼在另一臺計算機上運行得很好,即使它在單引號內。

難道這是一些VS2010更新的問題,我還沒有安裝?

回答

1

這不是一個VS2010 issue..it是一個語法問題

當你這樣做:

<ul> 
    <li class="<asp:Literal ID='litTest1' runat='server' />">stuff</li> 
</ul> 

輸出將是一個沒有CSS類列表項:

  • 東西

你不能從代碼隱藏中訪問litTest ..它不會識別在這種語法中控制。

你可以做的反而是離開文字在頁面上:

litTest1.Text = "<ul><li class='MyCssClass'>stuff</li></ul>"; 
+0

我認爲你是正確的,這是工作的原因:

<asp:Literal ID='litTest1' runat='server' /> 

然後在後臺添加HTML另一臺機器是因爲編寫這些代碼的人手動編寫了這些控制器在designer.cs文件中,當它再次重新生成時,這可能不起作用 – Victor

+0

它實際上是一個VS 2010問題,提問者的合成器在2008年用於正常工作,甚至這很奇怪,絕對應該避免。如果您更新2008年到2010年的項目,它會被忽略,直到IDE生成* .designer文件。 –