VJa*_*ain 3 asp.net sql-server-2008 query-string c#-4.0
我想通过查询字符串传递两个参数cartid和productis.Cartid将从数据库中的会话(如果可用)生成,而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");
}
Run Code Online (Sandbox Code Playgroud)
如果要从创建的会话中获取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);
}
Run Code Online (Sandbox Code Playgroud)
但是这两个查询都是错误的,正在生成这样的url
http://localhost:1030/SShopping%20Website/client/ViewCartItems.aspx?CartID=id%20&%20ProductID=productid
Run Code Online (Sandbox Code Playgroud)
请帮忙
Mik*_*Dev 11
使用String.Format读取通常要容易得多:
Response.Redirect(String.Format("ViewCartItems.aspx?CartID={0}&ProductID={1}", id, productid));
Run Code Online (Sandbox Code Playgroud)
此外,它可以使用Response.Redirect(url, false)而不是只是Response.Redirect(url),所以你没有得到ThreadAbortException.
来自MSDN:
在页面处理程序中使用此方法终止对一个页面的请求并为另一个页面启动新请求时,请将endResponse设置为false,然后调用CompleteRequest方法.如果为endResponse参数指定true,则此方法为原始请求调用End方法,该方法在完成时抛出ThreadAbortException异常.此异常对Web应用程序性能有不利影响,这就是建议为endResponse参数传递false的原因.
您需要将值连接到字符串中:
Response.Redirect("ViewCartItems.aspx?CartID=" + id.ToString() + "&ProductID=" + productid.ToString());
Run Code Online (Sandbox Code Playgroud)
小智 5
您在之间放置空格'&', 'variable name' , '='。
不要放空间。这样写:&name=,不喜欢& name =。
Response.Redirect("ViewCartItems.aspx?CartID="+id+"&ProductID="+productid);
Run Code Online (Sandbox Code Playgroud)
这将起作用。