2012-01-25 84 views
0

我創建了一個用於創建,刪除,投票和查看在線調查的Web系統,並且在GET方法中傳遞的參數有問題。當提交表單時忘記了GET方法傳遞的值

頁面ViewSurvey.aspx獲取調查ID的參數,然後它從數據庫加載信息並顯示它。例如,要查看ID爲vacations的調查信息,我們可以使用:ViewSurvey.aspx?survey=vacations

該頁面有一個表格,其中的選項將被觀看(I.E:按位置,年齡等)。但是當提交表單時,URL中的survey參數消失了。

我能做些什麼來解決它,什麼可能是傳遞調查ID作爲參數的另一種選擇?

回答

2

在名稱爲「survey」的表單中創建一個隱藏字段,並將其初始化爲請求參數的值。 「休假」。

+0

謝謝,它的效果很好。 – Jong

1

您可以使用類似於下面c#示例的代碼來訪問QueryString變量。

protected void Page_Load(object sender, EventArgs e) 
{ 
    string surveyType = Page.Request.QueryString["survey"]; 
} 

一旦你抓住了從請求對象的查詢字符串,您可以使用的許多選項之一是堅持ASP.NET有可用的(這裏有一些)。

// Add item to cache 
Cache["Survey"] = surveyType; 

// Add item to Context 
Context.Items["Survey"] = surveyType; 

// Add item to ViewState 
ViewState["Survey"] = surveyType; 
+0

問題是,用戶可能會更改他所查看的調查。是否只有單個頁面的緩存? – Jong

+0

如果只處理頁面,則可以使用ViewState或隱藏字段,因爲數據將駐留在頁面的內容中。緩存/上下文/會話/等...可以在頁面之後生存下來。 Cache的好處是可以過期。 – Zachary

相關問題