2012-01-25 13 views
0

オンライン調査の作成、削除、投票、表示のためのWebシステムを作成していますが、GETメソッドで渡されたパラメータに問題があります。フォームを送信すると、GETメソッドで渡された値は忘れてしまいます

ページViewSurvey.aspxは、調査IDのパラメータを取得した後、DBから情報をロードして表示します。たとえば、IDがvacationsのアンケートに関する情報を表示するには、ViewSurvey.aspx?survey=vacationsを使用します。

このページには、票が表示されるオプションがあります(I.E:場所、年齢などによって)。しかし、フォームが送信されると、URLのsurveyパラメータはなくなります。

私はそれを解決するために何ができるのですか?OR調査IDをパラメータとして渡すための別のオプションは何でしょうか?

答えて

2

「survey」という名前のフォームに非表示フィールドを作成し、リクエストパラメータの値に初期化します。 '休暇'。

+0

ありがとう、それは素晴らしい作品です。 – Jong

1

以下のc#の例と同様のコードを使用して、QueryString変数にアクセスできます。

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

あなたはRequestオブジェクトからのQueryStringをつかんたら、あなたは多くのオプションの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

問題は、ユーザーが彼が閲覧した調査を変更する可能性があることです。 1ページだけのキャッシュはありますか? – Jong

+0

ページのみを処理する場合は、データがページの内容に存在するため、ViewStateまたは非表示フィールドを使用できます。 Cache/Context/Session/etc ...はページを越えて生き残ることができます。キャッシュの利点は、それが期限切れになることです。 – Zachary

関連する問題