无法将值从纯HTML传递到ASP.NET页面

时间:2012-03-08 07:36:21

标签: asp.net html

我正在使用如下的html文件(tv.html):

<form action="myaspx.aspx?appid=5018" method="post" id="formSubscription" name="formSubscription">
<input type="checkbox" id="chckIsConfirm" name="chckIsConfirm"/> I Confirm
            <input type="submit" value="Ok" />
</form>

试图从“myaspx.aspx”获取它。背后的代码是:

protected void Page_Load(object sender, EventArgs e)
{
            if (!IsPostBack)
            {
               var r = HttpContext.Current.Request["chckIsConfirm"];
                 //Or
                NameValueCollection nvc = Request.Form;
               //Or
              var a = Request.Form.AllKeys;
            }
}

但我无法传递“chckIsConfirm”的值。所有的钥匙都是空的..我做错了什么?

更新:只有当我选中复选框时,它才会显示为“ON”,其他时间只是NULL。

提前致谢

3 个答案:

答案 0 :(得分:3)

这是大多数浏览器中复选框的默认行为。如果未选中,浏览器将不会随请求一起发送。作为一种解决方法,添加一个隐藏字段,该字段与复选​​框具有相同的名称,值为“0”,“OFF”,“FALSE”或任何您想要“未选中”值的字段。

答案 1 :(得分:0)

您缺少runat="server"

<强> ASPX

<input type="checkbox" id="chckIsConfirm" runat="server" name="chckIsConfirm"/>

<强> CS

var checked= chckIsConfirm.Checked;

答案 2 :(得分:0)

从您发布的代码中,您只是在第一次请求时检查它们,但是当您单击按钮时它是一个回发,因此您正在滑动读取值