从会话返回值

时间:2011-10-22 02:32:20

标签: c# asp.net session return

只是一个小问题,因为我无法找到解决问题的答案。

我有一个ASP页面,它将输入发送到数据库然后创建会话。我想知道如何在另一个 aspx页面上返回该会话中的某个值。

page1.aspx.cs [创建会话]

public partial class new_questionnaire : System.Web.UI.Page
    {
        OscarSQL c;

            protected void Page_Load(object sender, EventArgs e)
            {  
                c = new OscarSQL();
            } // End Page_Load

            //////    Button Method    //////        
            protected void NewQnrButton_Click(object sender, EventArgs e)
            {
                // Check if the input fields are empty.
                if (QuestionnaireName.Text == "" || CustomerID.Text == "" || NumberOfQuest.Text == "")
                {
                    Error.Text = "Please enter a name for your questionnaire.";
                }
                // Parse input values to OscarSQL.
                else
                {

                    int testRet = c.InsertQuestionnaire(QuestionnaireName.Text, Int32.Parse(CustomerID.Text), Int32.Parse(NumberOfQuest.Text));
                    Session["Questionnaire"] = testRet;
                    Confirm.Text = "Your questionnaire has been named " + QuestionnaireName.Text;
                    Response.Redirect("~/add_questions.aspx");
                }

            } // End NewQNRButton_Click

        } // End new_questionnaire

Page2.aspx.cs [希望在这里解析值]

namespace OSQARv0._1
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //ReturnQnrName.Text here?

        }
    }
}

我希望将来自 Page1 的值QuestionnaireName.Text返回到 Page2

上的ReturnQnrName.Text

4 个答案:

答案 0 :(得分:5)

你没有将QuestionnaireName.Text放入Page1上的Session,你输入一个整数。如果您需要实际的文本属性,请将其放入会话

Session["theText"] = QuestionnaireName.Text;

然后你可以检索它

string text = (string)Session["theText"]; 

这揭示了一些关于Session的内容。对象存储的类型为object,您需要在使用之前将它们转换为正确的类型。例如,要检索放入Session的整数,可以编写

int questionnaire = (int)Session["Questionnaire"];

答案 1 :(得分:1)

你在做什么

Session["Questionnaire"] = testRet;

在Page1上。在Page2上,您可以这样做:

protected void Page_Load(object sender, EventArgs e)
{
     string questionnaire = Session["Questionnaire"] as  string;
     if(!string.IsNullOrEmpty(questionnaire ))
     ReturnQnrName.Text =questionnaire ;

}

注意 刚刚意识到你在会话中放了一个int,但你似乎想在Session中存储一个文本并检索它。原理是一样的。

答案 2 :(得分:0)

这样做:

 string question = Session["Questionnaire"];

    if(question=="")
    {
        //No Value
    }
else
{
    ReturnQnrName.Text = question;
}

此致

答案 3 :(得分:0)

您可以使用Session [“QuestionnaireName”] = QuestionnaireName.Text;

在第二页中,您可以检索以下值

                string QuestionnarireName;
                if (Session["QuestionnaireName"] != null)
                {
                    QuestionnarireName = Session["QuestionnaireName"].ToString();

                }

或者您也可以放入ViewState。 Passing data between forms