【问题标题】:Page.Session not set to an instancePage.Session 未设置为实例
【发布时间】:2014-04-20 07:01:22
【问题描述】:

我无法理解 Page.Request.QueryStringPage.Session 的工作原理。我如何将name 分配给这个string

protected override void Render(HtmlTextWriter output)
    {

        SqlConnection sqlConnection = new SqlConnection(connectionString);
        SqlCommand sqlCommand = new SqlCommand();
        StringBuilder stringBuilder1 = new StringBuilder();
        StringBuilder stringBuilder2 = new StringBuilder();
        sqlCommand.Connection = sqlConnection;
        sqlCommand.CommandType = CommandType.StoredProcedure;
        sqlCommand.CommandText = "proc_UserBids";
        sqlCommand.CommandTimeout = 1000;
        string str = this.Page.Request.QueryString["name"] == null ? this.Page.Session["name"].ToString() : ((object)this.Page.Request.QueryString["name"]).ToString();
        if (!(str == ""))
        {
      //Do Something
       }
}

我得到的错误是:

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

 string str = this.Page.Request.QueryString["name"] == null ? this.Page.Session["name"].ToString() : ((object)this.Page.Request.QueryString["name"]).ToString();

【问题讨论】:

  • 您既没有查询字符串也没有键为“name”的会话

标签: c# asp.net custom-server-controls htmltextwriter


【解决方案1】:

您必须为session 设置一些值,称为name

示例(vb.net):

Session.Add("name","some string")

然后你可以在任何页面中使用这个Session("name")

例如在其他页面中:Dim str As String = Session("name")

如果你想使用QueryString 传递一些值,从一个页面到另一个页面,然后使用下面的代码。 例子 : 默认的.aspx

Response.Redirect("otherpage.aspx?name=Some string")

otherpage.aspx(代码隐藏):

Request.QueryString("name")

我希望这就是你所需要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 2021-08-25
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多