[ad_1]
こんにちは、みんな、
ページのリダイレクトに関して 1 つの問題があります。 ここにサンプルコードがあります
1) データベース接続 -> 完了
2) データの挿入 -> 完了
3) セッション変数内に値を追加 -> 完了
4) 成功ページにリダイレクト -> ここで問題が発生します:(
Default1.aspx:
VB
...... Dim success As String = "Success" ...... 'btn_Click Event Try sqlCom.ExecuteNonQuery() sqlCon.Close() Session("success") = success MsgBox(Session("success") 'Msg Prints Properly modifyXmlData(filePath); ' Modifies the attribute value '1st Approach Response.Redirect("default2.aspx", False) '2st Approach 'Server.Execute("default2.aspx", False) Catch ex As Exception MsgBox("Exception" + ex.Message) 'lbl_Success.Text = ex.Message End Try End Sub Protected Sub modifyXmlData(ByVal filepath As String) Dim strPath = Server.MapPath(filepath) Dim xmlFile = XDocument.Load(strPath) xmlFile.<root>.<ListItem>.Where(Function(f) _ f.@value = ddl_SelectedValue).@visited = "Yes" xmlFile.Save(strPath) End Sub
VB
defualt2.aspx inside page_Load() 'MsgBox(System.Web.HttpContext.Current.Session("success")) ' o/p : Empty Dim success As String = Session("success").toString MsgBox(success) 'o/p : Empty End Sub
1番目のアプローチ:レスポンスを使用する
次のページに正しくリダイレクトされますが、セッション値を取得しようとすると
それは常に空を示しています..
2番目のアプローチ:サーバーの使用
セッション値を保持し、リダイレクト時に Default2.aspx の Page_Load イベントを実行しますが、page_load コントロールが破棄されて Default1.aspx (最初のページ) にとどまるため、このオプションを恐れています。
Server.Execute の代わりに Server.Transfer を使用しましたが、例外が発生しました – 「スレッドが中止されています」
ありがとうございます
この問題を修正する方法を教えてください
解決策 1
試す
C#
session["success"]="success";
引用符を使用しない場合、成功は変数と見なされるためです。 これを使用すると、文字列をセッションに直接割り当てることができます。
[ad_2]
コメント