我无法在页面上添加按钮

问题描述

|
protected void Page_Load(object sender,EventArgs e)
{
    Button b = new Button();
    b.Text = \"1\";
    this.Controls.Add(b);
}
页面开始如下:
<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"ContentPlaceHolder2\" Runat=\"Server\"/>
母版页
    <div align=\"center\" runat=\"server\" >
         <form id=\"form1\" runat=\"server\">
               <asp:ContentPlaceHolder id=\"ContentPlaceHolder2\" runat=\"server\">
                </asp:ContentPlaceHolder>
         </form>
    </div>
如此处所示,按钮控件位于内部 那么,为什么我得到这个: http:// localhost:2427 / WebSite10 / AllQuestions.aspx
Control \'ctl01\' of type \'Button\' must be placed inside a form tag with runat=server.
说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。 异常详细信息:System.Web.HttpException:类型为'Button \'的控件\'ctl01 \'必须放置在带有runat = server的表单标记中。     

解决方法

        这些行上的东西应该起作用,这将有助于呈现控件
Button b = new Button();
b.Text = \"Click Me\";
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
b.RenderControl(hw);
Response.Write(hw.InnerWriter);
或者您也可以通过
PlaceHolder
<asp:PlaceHolder ID=\"holder1\" runat=\"server\"></asp:PlaceHolder>

Button b = new Button();
b.Text = \"Click Me\";
holder1.Controls.Add(b);
    ,        尝试将它qdd到contentplaceholder而不是页面本身