根据MSDN 隐藏字段部分,
为了在页面处理期间隐藏字段值可用,您必须使用 HTTP POST 命令提交页面。如果您使用隐藏字段并且页面被处理以响应链接或 HTTP GET 命令,则隐藏字段将不可用。
如果我在设计时添加一个 HiddenField 控件并在设计时或在 ASP.NET 的 Init 事件中设置一个值,为什么在第一次请求页面时我无法读取/处理该值?
根据MSDN 隐藏字段部分,
为了在页面处理期间隐藏字段值可用,您必须使用 HTTP POST 命令提交页面。如果您使用隐藏字段并且页面被处理以响应链接或 HTTP GET 命令,则隐藏字段将不可用。
如果我在设计时添加一个 HiddenField 控件并在设计时或在 ASP.NET 的 Init 事件中设置一个值,为什么在第一次请求页面时我无法读取/处理该值?
你是如何定义你的隐藏领域的?
您需要将隐藏字段设置为 runat="server" ,如下所示:
<input id="something" type="hidden" value="something that is hidden" runat="server" />
然后您将能够访问服务器上的此字段,即使它是 Get 请求。
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(string.Format("{0} came from hidden field", something.Value));
}