2009-12-02 72 views
1
之後不顯示文本的其餘部分
<div visible="false" runat="server"><a href='<%#string.Format("{0}removeAllItems=true", this.Page)%>' onclick="return confirm('Are you sure you want to remove all items?')">Remove all items</a></div> 

當我運行它時,它不顯示查詢字符串部分,只是page.aspx。我不明白爲什麼{0}後字符串的其餘部分被截斷。.aspx中的String.Format在

+0

,似乎工作的只有一個是 PositiveGuy 2009-12-02 19:09:09

回答

4

問號的問題可能與使用數據綁定(<%#...%>)而不是簡單輸出(<%=...%>)有關。

的String.Format是矯枉過正,因爲你只需要連接兩個字符串:

<a href='<%=String.Concat(this.Page, ".aspx?removeItems=true")%>' >text</a> 

或者乾脆把第二個字符串中的標記:

<a href='<%=this.Page%>.aspx?removeItems=true' >text</a> 
+0

我不需要.aspx,因爲我們已經找到了。是的,不需要string.Format,但我仍然想知道爲什麼這不起作用,不管不需要它。 – PositiveGuy 2009-12-02 19:03:14

+0

string.format如何矯枉過正,以何種方式?如果你正在談論內存很好,否則它真的是你的口味是可讀性 – PositiveGuy 2009-12-02 19:03:53

+0

甚至沒有硬編碼 – PositiveGuy 2009-12-02 19:04:40

0

您的字符串連接是不必要的;你試過這個嗎? ?

<a href='<%#string.Format("{0}.aspx?removeItems=true", this.Page)%>' >text</a> 
+0

是的,實際上在發佈後嘗試了這一點,它仍然忽略{0} – PositiveGuy 2009-12-02 18:54:11

0

,因爲它忽視了,試試這個:

<a href='<%#string.Format("{0}.aspx{1}removeItems=true", this.Page, "?")%>' >text</a> 

內聯標籤<%#用於數據綁定,但這個。
頁面不是數據綁定屬性。切換到<%=,這相當於Response.Write &看看是否有效。

這是hackish,但有時這就是它在asp.net中所需要的。

E.g.如果您使用StringBuilder在運行時創建JavaScript字符串,並嘗試使用StringBuilder.AppendFormat,除了Format大括號之外,您不能使用任何其他大括號。你可以用類似的方式解決這個問題,使用一個string.format方法並注入「{」和「}」。

「?」問題可能是使用數據綁定標籤處理代碼頁錯誤的問題。有關詳細信息,請參閱:http://support.microsoft.com/kb/893663

+0

奇怪的文本,應該不必這樣做。我想知道爲什麼它忽略了{0}之後的任何部分。對我來說,這將是一個黑客...對不起,只是誠實。我真的很想弄清楚跆拳道是怎麼回事,到目前爲止我還沒有運氣,這是一種痛苦。 – PositiveGuy 2009-12-02 18:59:08

+0

我已經編輯了我的答案,並解釋了爲什麼你遇到了「?」的問題。 – 2009-12-02 20:08:25

+0

啊,我沒有重新加載頁面,因爲你的問題得到了回答。抱歉。 – 2009-12-02 20:10:03