asp.net web表单获取HTML选择后面的代码值

时间:2016-01-03 20:50:35

标签: c# html asp.net webforms codeblocks

我正在代码块中创建HTML select

 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中获取值是否是任何解决方案?我不想选择runat="server"

谢谢!

1 个答案:

答案 0 :(得分:0)

我们可以使用更多细节来更清楚地回答这个问题,但我怀疑,因为你正在做一个回复。写回来后你就会失去状态。我假设您的原始选择控件已硬编码到.aspx页面中,这就是为什么您仍然可以使用Forms.Request方法查看它。

您可以尝试在Page_Init函数中抛出此代码并查看是否可以解决您的问题,如果没有,我会通过服务器支持的隐藏字段设置所选值,以便您可以在代码后面访问它,因为您要回发无论如何都要点击一下按钮。