我想将一个id作为会话,但是它给我asp.net中的解析器错误

时间:2019-07-06 14:42:56

标签: c# html asp.net query-string

我正在尝试通过asp.net中的超链接通过querystring或Session [“ p”]发送ID,但是它一直给我这个错误“解析器错误”,请帮我!

我试图将其解析为int,但它也不起作用

//这是html

   <asp:Repeater runat="server" ID="reptater" OnItemCommand="reptater_ItemCommand">
                    <ItemTemplate>
                <section>
                    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='~/commander.aspx?id='+<%#Eval("id_Prod") %>>
                   <div class="gallery">
                       <h1> <%#Eval("nom_Prod") %></h1>

                       <asp:Image ID="image1"  runat="server"  width="180" height="120" ImageUrl='<%#Eval("img") %>' />

            &nbsp;&nbsp;<div class="desc"> <%#Eval("Détails") %> <br> Prix:  <%#Eval("prix") %> DH  <%#Convert.ToInt32(Eval("id_Prod")) %></div>
        </div>
                        </asp:HyperLink>
                </section>


            </ItemTemplate>


        </asp:Repeater>

//这是我的代码

protected void Page_Load(object sender, EventArgs e)
        {

            Connexion.cnx.Open();

            Connexion.dt1.Clear();
            Label2.Text = Request.QueryString["search"].ToString();
            int nbr;
            Connexion.cmd.CommandText = "select count(*) from  Produit where nom_Prod='" + Request.QueryString["search"].ToString() + "'";
            Connexion.cmd.Connection = Connexion.cnx;
            nbr = (int)Connexion.cmd.ExecuteScalar();
            if (nbr >= 1)
            {

                Connexion.cmd.CommandText = "select id_Prod,nom_Prod,Détails,Prix,#emailVendeur,img from Produit where nom_Prod='" + Request.QueryString["search"].ToString() + "'";
               Connexion.cmd.Connection = Connexion.cnx;
               Connexion.dr = Connexion.cmd.ExecuteReader();
                Connexion.dt1.Load(Connexion.dr);
                reptater.DataSource = Connexion.dt1; ;
                reptater.DataBind();
                Connexion.dr.Close();
            }
            else { Label3.Visible = true; }



        }

我想在单击div时将我带到另一个ID为会话的页面或一个我更喜欢作为会话的查询字符串

1 个答案:

答案 0 :(得分:0)

代替使用

Request.QueryString["search"]

您应该使用

Request.QueryString["id"]

因为您要在查询字符串中发送“ id”

  

NavigateUrl ='〜/ commander.aspx?id ='+ <%#Eval(“ id_Prod”)%>