如何在查询字符串中传递两个参数?

时间:2013-09-29 16:04:25

标签: asp.net sql-server-2008 c#-4.0 query-string

我想通过查询字符串传递两个参数cartid和productis。 Cartid将从数据库中的session(如果可用)else生成,而Product将从之前的查询sting中生成

我的代码是(如果要从数据库中获取购物车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);

                }

但两个查询都是错误的 正在生成这样的网址

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

请帮忙

3 个答案:

答案 0 :(得分:9)

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

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

此外,它可以使用Response.Redirect(url, false)而非Response.Redirect(url),因此您无法获得ThreadAbortException

来自MSDN:

  

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

阅读:Response.Redirect

答案 1 :(得分:5)

您需要将值连接到字符串中:

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

答案 2 :(得分:4)

您在& name =

之间放置空格

不要放空间。写得像这样:Response.Redirect("ViewCartItems.aspx?CartID="+id+"&ProductID="+productid); ,而不是像JInternalFrame

JPanel

这样可行。