2009-10-14 55 views
0
頁面

我們有下面的代碼雖然沒有值作爲查詢字符串傳遞所返回的「3」的值。是否有某種方式使「id」卡在服務器內存中(因爲它不是用戶特定的),或者是「id」是特殊值。有任何想法嗎?Page.Request.QueryString有一個值,雖然沒有被傳遞給

if (Page.Request.QueryString["id"] != null) 
{ 
Page.Trace.Write("Query String Key Found"); 
ListItemID = HttpContext.Current.Request.QueryString["id"]; 
} 

這是在SharePoint 2007 Web部件中。

回答

0

如果web部件是由點擊接上頁列表項導航到頁面上;你會看到該列表項的ID。

0

有可能是一個後(或GET)與參數的地方,這是一個從你隱藏。查詢串是過去的GET變量,沒有「卡住」或「服務器內存」。

使用工具,如HTTPAnalyzerFiddler分析HTTP流量。這會告訴你誰在提出什麼請求。 儘管它可能是您在Sharepoint中點擊的控件的ID。

+0

當我清除我的所有緩存,並打開一個新的瀏覽器並導航到aspx頁面時,查詢字符串有一個值,即使我特意將URL放在手邊。 – PapaDaniel 2009-10-14 22:44:51

+0

代碼位於何處?它在主頁面嗎?或者它是否在從頁面引用的控件中?如果它位於從頁面引用的控件中,請在HTML上執行「查看源代碼」並查看組件的URL。該URL中必須有一個「id」參數。 – 2009-10-14 22:52:17

0

清除瀏覽器緩存。

+0

瀏覽器緩存與HttpRequest – 2009-10-14 22:46:28

+0

@Mircea無關,我知道這一點。但是,完整的瀏覽器緩存會導致各種伏都教,尤其是在SharePoint中處理Web部件時。 – IrishChieftain 2009-10-14 23:23:27

0

通常,當一個web部件被添加,它具有可用於輸入所有的參數會被分配一個默認值,例如,一個dataformwebpart添加到ampty頁面,並將其綁定到一個列表。然後打開頁面的來源。你會看到一堆參數綁定,然後綁定到querystrings。如果您的web部件爲ListItemId分配了默認值,您可以嗎?

或者,您在實際調試並步入這個特定的代碼和ID查詢字符串變量實際上包含3?如果是這樣,我同意其他答案之一,請使用Fiddler檢查打開該頁面時進行了多少次http調用。

相關問題