这是一个非常简单的问题,因为我是asp.net的新手,我正在尝试开发一个联系我们页面,我收到以下错误。
“类型'TextBox'的控件'ContentPlaceHolder1_nameBox'必须放在带有runat = server”的表单标签内
以下是该页面目前的代码。
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="ContactUs.aspx.cs" Inherits="Craigavon_Aquatics.ContactUs" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<h2>
Contact Us</h2>
<p>
Please fill in the form below to contact us.</p>
<p>
</p>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<table style="width: 100%">
<tr>
<td>
Name: (Required)</td>
</tr>
<tr>
<td>
<asp:TextBox ID="nameBox" runat="server" Width="278px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Email: (Required)</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
</asp:Content>
答案 0 :(得分:4)
在您的母版页中围绕contentplaceholder放置一个包装<form runat="Server">
,或者在<asp:Content>
标记内的该页面上添加一个围绕您当前内容的<form runat="server">
。
<强> Site1.Master 强>
<form runat="server">
<asp:ContentPlaceHolder ...></asp:ContentPlaceHolder>
</form>
-OR -
<强> ContactUs.aspx 强>
<asp:Content ...>
<form runat="server">
...existing HTML code...
</form>
</asp:Content>
答案 1 :(得分:0)
找到ID为'ContentPlaceHolder1_nameBox'的控件,并放在.aspx的表单/表单标签之间以消除错误。 ASP .Net Server控件必须位于Form标签内。
答案 2 :(得分:0)
您需要<form runat="server">
//您的代码,控制.. </form>
标记以包围您的代码。这可能是您的母版页中遗漏的
答案 3 :(得分:0)
您必须检查并确保在母版页上声明了表单。由于我无法看到,所以我不得不假设如果出现错误就没有。
答案 4 :(得分:0)
最简单的解决方案是将主体内部包裹在MasterPage中 但你也可以像这样覆盖它。
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
答案 5 :(得分:0)
母版页中的所有控件都应位于<form>...</form>
标记内,包括您的内容占位符。
这与“联系页面”无关。这通常是ASP.NET页面的基础。