我正在使用如下的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。
提前致谢
答案 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)
从您发布的代码中,您只是在第一次请求时检查它们,但是当您单击按钮时它是一个回发,因此您正在滑动读取值