asp.net web表单在代码隐藏中获得HTML Select值

本文关键字:HTML Select 隐藏 web net 表单 代码 asp | 更新日期: 2023-09-27 18:28:53

我正在代码块中创建HTML选择

 Response.Write("<p>Mark: </p><select onChange='"removeSameValue("+dzielo.URL+")'" id='"" + dzielo.URL + "'" name ='""+ dzielo.URL + "'" class='"form-control'">");
             Response.Write("<option value='"--wybierz--'">--wybierz--</option>");
             for (int i = 1; i <= dziela.Count; i++)
             {
                 int j = i+1;
               Response.Write("<option value='"" + j + "'">" + i + "</option>");
             }
                 Response.Write("</select>");

点击按钮后,我试图从这个选择标签中获得一个选定的值:

protected void vote_Click(object sender, EventArgs e)
        {
            foreach(Dzieło dzielo in dziela){
               String ocena = Request.Form[dzielo.URL];
                ocenyDziel.Add(dzielo.Id_dzieło,int.Parse(ocena));
            }
 }    

但它总是返回null。当我创建HTML选择不在代码块中时,我可以用这种方式获得它。从代码块中创建的Select中获取值有什么解决方案吗?我不想制作Select runat="server"

谢谢!

asp.net web表单在代码隐藏中获得HTML Select值

我们可以使用更多的细节来更清楚地回答这个问题,但我怀疑,由于您正在执行response.write,您在初始响应返回后会丢失状态。我假设您最初的select控件是硬编码到.aspx页面中的,这就是为什么您仍然可以使用Forms.Request方法看到它。

你可以尝试在Page_Init函数中插入此代码,看看这是否能解决你的问题,如果不能,我会通过服务器支持的隐藏字段设置所选值,这样你就可以在代码后面访问它,因为你在发布时只需点击一个按钮。