2017-12-01 18 views
-2

をクリアされ、同じページ上のResponse.Redirectをしながら。私は私のビューステートがクリアされ異なるクエリ文字列に(同じページに)同じURLにResponse.Redirectを経由ページにリダイレクトしながら、私のViewStateは

親切に私に同じページのResponse.Redirect後、私は(そのページ用だけでなく、新しいタブ用)、その値 を得ることができるようにどこかに格納するデータのビューステートデータを維持するためのアイデアや代替方法を提供

セッション私はすべてのタブとページを通じてデータを提供します 私はresponse.redirectの後に1ページだけが必要です。

+3

(同じページに)同じURLへのポストバックとのResponse.Redirectの違い –

+2

'Response.Redirect'が初めてのページに行くと同じであるがあります。あなたのオプションは、ViewStateを維持するためにポストバックを使って、 'Response.Redirect'の代替案を提示するかもしれません。 [Server.Transfer](https://www.codeproject.com/Articles/775221/Server-Transfer-VS-Response-Redirect-Simplified)も代わりの方法です。私は全体としてViewStateを維持しようとは考えていません。複雑すぎるので、設計上、操作が難しいです。私たちはあなたが何をしようとしているのかについての十分な情報を実際には持っていません。意味のある回答を提供するために –

+0

私は純粋な動的ページを開発しました。 すべてのコントロールと値が各入力に対してそのユーザの入力 に基づいて満たされている私は、ViewStateにデータを格納するので、 を場合、Request.QueryStringを通じて同じURLではなく、別のクエリ文字列にページをリダイレクトしています(セッションができませんので、同じページを複数回開いている場合、私は はので、私はResponse.Redirectをした後だけ –

答えて

0

Response.Redirectは、同じページまたは別のページにリダイレクトすることなくViewStateをクリアします。 ViewStateを保持する必要がある場合は、Ajaxメカニズムを使用して部分的なポストバックを使用します。 Response.Redirectを使用してViewStateを保持する場合は、viewstateを取得し、セッションまたはクエリ文字列を使用してページをリダイレクトします。

+0

すべてのコントロールが動的に作成されるため、Ajaxのメカニズムが動作しません ページは純粋なダイナミックです私は、同じページを再度開くことができないことを確認したいだけ、そのページが開かれた第一回を教え は、実際に私はビューステートにフラグを格納する別のクエリ文字列でのResponse.Redirectを通じて同じURLに再びページをリダイレクトする必要があり同じユーザによって、ユーザは、直接コピーして、過去のURL文字列を、我々はそれが私が セッションをしたくないというクエリ文字列を通じて権フラグを取得するため、システムは、ユーザが再びそのページを開くことができますよりも、クエリ文字列内のデータも同じIを作成することを維持した場合場合ssue –

+0

この場合、フラグにはquery stringを使用します。 ViewStateは使用しないでください。暗号化を行うか、そのユーザーを読むことができないことを確認してください。例えば。 http://www.blurblur.com?f = vCxcC53W5JHJ7aXjUdDud272e8dd39。あるいは、データベースを使って最初に追跡するかどうかを決定します。 – Mike

+0

ユーザータブを右クリックしてDuplicateタブを作成するだけです。 –

0

まあ、明らかにResponse.RedirectPostBackは、二つの異なるものです。 Response.Redirect ViewStateのすべてのパラメータをクリアします。セッションで値を保存したくない場合は、ViewstateデータをQuerystringに送信し、PageLoadにはその値がRequest.Querystringであるかどうかを確認し、そうでない場合はViewstateに再度保存することをおすすめします。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!isPostBack) 
    { 
      if(Request.QueryString["id"] != null) 
      { 
        ViewState["id"]=Request.QueryString["id"]; 
      } 
    } 
} 
+0

実際にはビューステートにフラグが格納されています。ページは純粋な動的なので、私はリダイレクトする必要があります別のクエリ文字列を使用して同じURLに同じURLにページを再度 私は同じページをユーザーが直接コピーして過去のURL文字列を開いた場合に同じページを開くことができないことを確認したいと思います。ユーザーがそのページを再度開くことを許可する –

関連する問題