我无法理解Page.Request.QueryString
和Page.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();
答案 0 :(得分: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")
我希望这就是你所需要的。