0

我无法理解如何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();
4

1 回答 1

1

您必须为session被调用设置一些值name

示例(vb.net):

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

然后您可以Session("name")在任何页面中使用它。

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

如果您想使用QueryString, 从一个页面传递一些值到另一个页面,请使用下面的代码。示例:deafult.aspx

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

otherpage.aspx(后面的代码):

Request.QueryString("name")

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

于 2014-03-14T19:46:19.380 回答