必须将带有'TextBox'类型的控件'ctl00_TextBox1'放在带有runat = server的表单标记内

时间:2010-03-22 06:25:12

标签: asp.net master-pages

当添加在服务器上运行的表单时,将有两个表单与runat服务器,并发生另一个错误。有人可以给我一个想法。提前谢谢。

错误的详细信息如下。

'TextBox'类型的控件'ctl00_TextBox1'必须放在带有runat = server的表单标签内。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.Web.HttpException:类型为“TextBox”的控件“ctl00_TextBox1”必须放在带有runat = server的表单标记内。

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

  

[HttpException(0x80004005):控制   'TextBox'类型的'ctl00_TextBox1'   必须放在表格标签内   RUNAT =服务器。]
  System.Web.UI.Page.VerifyRenderingInServerForm(控制   控制)+2052287
  System.Web.UI.WebControls.TextBox.AddAttributesToRender(HtmlTextWriter的   作家)+49
  System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter的   作家)+17
  System.Web.UI.WebControls.TextBox.Render(HtmlTextWriter的   作家)+17
  System.Web.UI.Control.RenderControlInternal(HtmlTextWriter的   writer,ControlAdapter适配器)+25
  System.Web.UI.Control.RenderControl(HtmlTextWriter的   writer,ControlAdapter适配器)+121
  System.Web.UI.Control.RenderControl(HtmlTextWriter的   作家)+22
  System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter的   作家,ICollection孩子们)+199
  System.Web.UI.Control.RenderChildren(HtmlTextWriter的   作家)+20
  System.Web.UI.Control.Render(HtmlTextWriter的   作家)+7
  System.Web.UI.Control.RenderControlInternal(HtmlTextWriter的   writer,ControlAdapter适配器)+25
  System.Web.UI.Control.RenderControl(HtmlTextWriter的   writer,ControlAdapter适配器)+121
  System.Web.UI.Control.RenderControl(HtmlTextWriter的   作家)+22
  System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter的   作家,ICollection孩子们)+199
  System.Web.UI.Control.RenderChildren(HtmlTextWriter的   作家)+20
  System.Web.UI.Page.Render(HtmlTextWriter的   作家)+26
  System.Web.UI.Control.RenderControlInternal(HtmlTextWriter的   writer,ControlAdapter适配器)+25
  System.Web.UI.Control.RenderControl(HtmlTextWriter的   writer,ControlAdapter适配器)+121
  System.Web.UI.Control.RenderControl(HtmlTextWriter的   作家)+22
  System.Web.UI.Page.ProcessRequestMain(布尔   includeStagesBeforeAsyncPoint,Boolean   includeStagesAfterAsyncPoint)+2558

     

版本信息:Microsoft .NET   框架版本:2.0.50727.1873;   ASP.NET版本:2.0.50727.1433

7 个答案:

答案 0 :(得分:9)

错误说明了问题

正确

<form id="frm" runat="server">
    <asp:TextBox id="txt" runat="server" />
</form>

不正确的

<asp:TextBox id="txt" runat="server" />
<form id="frm" runat="server">
</form>

答案 1 :(得分:4)

查看标签&#34;主页&#34;如果您尝试在使用母版页的内容页面中动态添加文本框(或任何控件),则可能会弹出此错误。

只有母版页包含一个表格,其中包含runat =&#34; server&#34;组。内容页面只有内容占有者。

要动态地向内容页面添加控件,请在内容页面中的所需contentplaceholder中包含一个面板,然后在代码中向其添加控件。例如,

在内容页面的aspx文件中,添加一个类似

的面板
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>   

然后,在您的代码中,

        Dim txtbox As New textbox()
        Panel1.Controls.Add(txtbox)

答案 2 :(得分:1)

发生错误是因为您将控件与runat =“server”放在窗体标记之外(runat =“server”也是如此)。 ASP.NET要求使用runat =“server”属性在一个表单中包含所有服务器控件。

答案 3 :(得分:0)

使用标准ASP.Net,您只能拥有一个表单。这是ASP.Net的限制。如果您要做的事情需要2个或更多<FORM>标签,那么您将需要MVC或类似的东西。

答案 4 :(得分:0)

我也碰到了这个。我做了什么,只是添加了一个PageWrapper,所有网站的代码都在里面。例如:

<body>
 <div ID="PageWrapper">
    <form ID="form1" runat="server">
        <div ID="Header">...</div>
        <div ID="MainContent">...</div>
         ...
    </form>
 </div>
</body>

这样的事情。希望这会有所帮助。

答案 5 :(得分:0)

您没有说明此控件在您的表单上的位置。

如果这个错误是由于我有一个GridView控件内的另一个控件的结果,那么这也可以帮助你:

Control xxx of type 'LinkButton' must be placed inside a form tag with runat=server

答案 6 :(得分:0)

错误是控制&lt; txtTo&#39;类型&#39; TextBox&#39;必须将其放在带有runat = server的表单标记内。

错误是本规范。

 Exception in thread "main" java.lang.NoClassDefFoundError: taglib/Tagger
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at Launcher.main(Launcher.java:10)