C# 使用runatserver将控件添加到ASP.NET网页

C# 使用runatserver将控件添加到ASP.NET网页,c#,asp.net,gridview,C#,Asp.net,Gridview,我使用这个方法在一个页面中 private HiddenField idHiddenField = new HiddenField(); public void SetIdToHiddenField(string id) { idHiddenField.ID = "IdHiddenField"; idHiddenField.Value = id; Page.Controls.Add(idHiddenField); } 我想在

我使用这个方法在一个页面中

 private HiddenField idHiddenField = new HiddenField();
 public void SetIdToHiddenField(string id)
    {
        idHiddenField.ID = "IdHiddenField";
        idHiddenField.Value = id;

        Page.Controls.Add(idHiddenField);
    }
我想在我的页面中动态创建一个HiddenField并存储任何内容 但使用此方法时会发生错误

Control 'IdHiddenField' of type 'HiddenField' must be placed inside a form tag with runat=server.

如何动态添加隐藏字段而不出现任何问题?

特别是对于隐藏字段,ASP.NET允许您执行以下操作:

特别针对您的示例:

public void SetIdToHiddenField(string id)
{
Page.ClientScript.RegisterHiddenField("idHiddenField", id);
}

例外情况清楚地表明,页面的表单必须具有
runat
属性,例如:

<form id="form1" runat="server">
</form>


它是否有
runat
属性?

asp.net中的datagridview是什么?请详细说明以获得正确答案DataGridView=asp.net Gridview,我更改了问题的文本DataGridView是winforms控件供参考。请发布相关标记并详细说明问题我有母版页和我的母版页有RunatServerForm,那么为什么不将
HiddenField
添加到
ContentPlaceHolder
?我提供的代码仅供参考。我更新了我的答案以显示您需要做的一切。如何将此Hiddenfield的值放入usercontrol或其他位置?通过将Hiddenfield放置在特定位置,您试图实现什么?我还更新了我的答案,因为Page.RegisterHiddenField已被弃用。我需要一个服务器端控件,所以我使用了HtmlInputHidden并解决了问题:D