2013-09-29 165 views
2

我想通过查询字符串传递两个参数cartid和productis。 Cartid要生成无论是从会话(如果有),否则从数据库产品是从以前的查询刺取如何在查询字符串中传递两个参数?

我的代码(如果车ID是从数据库中获取)

 CartInfo cartinfo = new CartInfo(); 
     cartinfo.UserName = Session["UserName"].ToString(); 
     cartinfo.IsOrder = "0"; 
     cartinfo.CartDate = DateTime.Now; 
     int id = new InsertAction().InsertData(cartinfo); 
     if (id!=0) 
     { 
      lblmsg.Text = "Inserted Sucessfully"; 
      Session["CartID"] = id; 
      if (Request.QueryString["ProductID"] != null) 
      { 
       int productid = int.Parse(Request.QueryString["ProductID"]); 
      } 
      Response.Redirect("ViewCartItems.aspx?CartID=id & ProductID=productid"); 

     } 

,并在案件cartid是从创建

if (Session["CartID"] != null) 
     { 
      string cartid; 
      int productid; 
      if (Request.QueryString["ProductID"] != null) 
      { 
       cartid = Session["CartID"].ToString(); 
       productid = int.Parse(Request.QueryString["ProductID"]); 
       DataSet ds = new AddCartItem().GetCartItem(cartid, productid); 
       if (ds.Tables[0].Rows.Count > 0) 
       { 
        DataSet ds1 = new AddCartItem().UpdateCartItem(cartid, productid); 

       } 

会话获取但无论是查询是错误的 的都是这样

0123生成的URL
http://localhost:1030/SShopping%20Website/client/ViewCartItems.aspx?CartID=id%20&%20ProductID=productid 

请帮

回答

9

它通常更容易阅读使用String.Format

Response.Redirect(String.Format("ViewCartItems.aspx?CartID={0}&ProductID={1}", id, productid)); 

而且,prefable到使用Response.Redirect(url, false)而不是仅仅Response.Redirect(url),所以你没有得到ThreadAbortException

从MSDN:

当您使用此方法在页面处理程序终止 一个页面的请求,并开始为另一个页面的新要求,设置endResponse到 假,然后调用CompleteRequest方法。如果您为endResponse参数指定了真 ,则此方法会调用原始请求的 的End方法,该方法在完成时会抛出ThreadAbortException异常 。此异常对Web应用程序性能造成不利影响,这就是为什么建议将 endResponse参数传递为false的原因。

阅读:Response.Redirect

5

您需要的值连接成字符串:

Response.Redirect("ViewCartItems.aspx?CartID=" + id.ToString() + "&ProductID=" + productid.ToString()); 
3

你把'&', 'variable name' , '='之间的空间。

请勿放置空间。这样写:&name=,不喜欢& name =

Response.Redirect("ViewCartItems.aspx?CartID="+id+"&ProductID="+productid); 

这会奏效。

相关问题