0

セッションがnullになるため、イライラしています。
保存ボタンをクリックすると、データがコード ビハインドから DB に保存されます。これが成功した場合は、次の構文を使用して、ユーザーをメイン プロジェクト ページにリダイレクトします。

Response.Redirect("~/Admin/Projects.aspx?i=esc&prjName=abc",'false');

しかし、それは私のセッションをnullにします。
Globex.asax ページに移動し、ang を実行しSession_Endてすべてのセッションを null にします。

私も試してみServer.Transferましたが、これによりブラウザのURLは同じままで、クライアントはこれを望んでいませんServer.Execute

このセッションのヌル問題なしで使用できResponse.Redirectますか??

(このページでは、長い説明を保存するテキスト ファイルを作成しています。これが成功すると、別のページにリダイレクトされます。)

アップデート::

ここにボタンクリックのコードがあります

protected void lnkbtnAddDescription_Click(object sender, EventArgs e)
        {
            try
            {
                if ((!hidProjId.Value.ToString().Equals("") || !hidEditProjId.Value.ToString().Equals("")) && !txtDescription.Value.ToString().Equals(""))
                {
                    //ProjectDescription
                    int projId = 0;
                    if (!hidIsEdit.Value.ToString().Equals(""))
                    {
                        projId = Convert.ToInt32(hidEditProjId.Value.ToString());
                    }
                    else
                    {
                        projId = Convert.ToInt32(hidProjId.Value.ToString());
                    }

                    ProjectM proj = new ProjectM();
                    proj.LoadByKey(projId);

                    string prj = proj.ProjectName.ToString().Replace(" ", "-");

                    string strDirectoryPath = Server.MapPath("~/ProjectDescription/") + proj.ProjectId + "-" + prj;
                    if (!Directory.Exists(strDirectoryPath))
                    {
                        Directory.CreateDirectory(strDirectoryPath);

                        string filePath = strDirectoryPath + "/" + proj.ProjectId + "-" + prj + ".txt";
                        string strDescription = txtDescription.Value.ToString().Replace("<br />", "<p>");
                        createTextFile(filePath, strDescription);

                        string dbDirectoryPath = "~/ProjectDescription/" + proj.ProjectId + "-" + prj + "/" + proj.ProjectId + "-" + prj + ".txt";
                        proj.Description = dbDirectoryPath.ToString();
                        proj.IsNew = false;
                        proj.Save();

                        if (!hidIsEdit.Value.ToString().Equals(""))
                        {
                            //Server.Execute("~/SuperAdmin/Projects.aspx?i=esc&prjName=" + proj.ProjectName.ToString() + "",false);
                            Session["dsProj"] = null;
                            Session["editProjId"] = null;
                            Session["fname"] = hidFname.Value.ToString();
                            Session["UserId"] = hidUserId.Value.ToString();
                            Session["role"] = hidRole.Value.ToString();
                            Response.Redirect("~/SuperAdmin/Projects.aspx?i=esc&prjName=" + proj.ProjectName.ToString());
                        }
                        else
                        {
                            //Server.Execute("~/SuperAdmin/Projects.aspx?i=sc&prjName=" + proj.ProjectName.ToString() + "",false);
                            Session["dsProj"] = null;
                            Session["editProjId"] = null;
                            Session["fname"] = hidFname.Value.ToString();
                            Session["UserId"] = hidUserId.Value.ToString();
                            Session["role"] = hidRole.Value.ToString();
                            Response.Redirect("~/SuperAdmin/Projects.aspx?i=sc&prjName=" + proj.ProjectName.ToString());
                        }

                    }
                    else
                    {
                        Directory.Delete(strDirectoryPath, true);
                        Directory.CreateDirectory(strDirectoryPath);

                        string fileName = proj.ProjectName.ToString().Replace(" ", "-");

                        string filePath = strDirectoryPath + "/" + proj.ProjectId + "-" + fileName + ".txt";
                        string strDescription = txtDescription.Value.ToString().Replace("<br>", "<p>");
                        createTextFile(filePath, strDescription);

                        string dbDirectoryPath = "~/ProjectDescription/" + proj.ProjectId + "-" + proj.ProjectName.ToString() + "/" + proj.ProjectId + "-" + proj.ProjectName.ToString() + ".txt";
                        proj.Description = dbDirectoryPath.ToString();
                        proj.IsNew = false;
                        proj.Save();

                        if (!hidIsEdit.Value.ToString().Equals(""))
                        {
                            //Server.Execute("~/SuperAdmin/Projects.aspx?i=esc&prjName=" + proj.ProjectName.ToString() + "", false);
                            Session["dsProj"] = null;
                            Session["editProjId"] = null;
                            Session["fname"] = hidFname.Value.ToString();
                            Session["UserId"] = hidUserId.Value.ToString();
                            Session["role"] = hidRole.Value.ToString();
                            Response.Redirect("~/SuperAdmin/Projects.aspx?i=esc&prjName=" + proj.ProjectName.ToString());
                        }
                        else
                        {
                            //Server.Execute("~/SuperAdmin/Projects.aspx?i=sc&prjName=" + proj.ProjectName.ToString() + "", false);
                            Session["dsProj"] = null;
                            Session["editProjId"] = null;
                            Session["fname"] = hidFname.Value.ToString();
                            Session["UserId"] = hidUserId.Value.ToString();
                            Session["role"] = hidRole.Value.ToString();
                            Response.Redirect("~/SuperAdmin/Projects.aspx?i=sc&prjName=" + proj.ProjectName.ToString());
                        }
                    }
                }
            }
            catch (Exception)
            {

            }
        }

        private void createTextFile(string filePath, string strDescription)
        {
            try
            {   
                StreamWriter w = File.CreateText(filePath);
                w.WriteLine(strDescription);
                w.Flush();
                w.Close();
            }
            catch (Exception ex)
            {

            }
        }
4

4 に答える 4

0

テキスト ファイルの作成または保存に問題があるはずです。これは Session_End 呼び出しを行っている可能性があるため、すべての値が null になっています。

于 2012-12-27T06:52:42.090 に答える
0

これがお役に立てば幸いです。 ローカルでのポストバック後に ASP.NET セッションが null になります

これは、あなたの問題がnulling、セッションであるある種の許可拒否に関連していると考えています。

于 2012-12-26T11:56:22.813 に答える
0

次のページにリダイレクトする前に、ボタン クリック イベントにも既存のセッション値を割り当てます。

これで問題は解決します。

于 2012-12-26T11:40:29.287 に答える
-1

フォルダーの削除、移動、名前の変更によりセッションが終了し、長時間の更新が発生する

http://www.telerik.com/community/forums/aspnet-ajax/file-explorer/folder-delete-move-rename-causes-session-end-and-long-refresh.aspx#1365780

于 2013-08-20T11:08:45.780 に答える