ASP.net联系我们
这是一个非常简单的问题,因为我是新来asp.net我试图建立一个与我们联系页面,我收到以下错误。ASP.net联系我们
“类型‘文本框’的控制‘ContentPlaceHolder1_nameBox’必须放在一个窗体标记内与RUNAT =服务器”
以下是到目前为止我的代码用于该页面。
<%@ 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>
两个地方的包装<form runat="Server">
在母版页周围的ContentPlaceHolder,或<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>
找到与的 'ContentPlaceHolder1_nameBox' 的ID的控制,并放置在之间.aspx的表单/表单标签来摆脱错误。 ASP .Net Server控件必须位于Form标签内。
非常感谢你的帮助 – Inkey 2011-02-10 17:28:43
您需要<form runat="server">
//你的代码,控制.. </form>
标签包围你的代码。这可能是从你的母版页
缺少你必须检查并确保您拥有母版页上声明的形式。既然我看不到那个,那么如果那个错误出现了,我将不得不假设没有一个。
是啊这是什么问题是非常感谢 – Inkey 2011-02-10 17:35:17
最简单的办法就是在你的母版里面包裹身体。
但你也可以像这样覆盖它。
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
在母版页中所有的控制应该是一个<form>...</form>
标签里面,包括您的内容占位符。
这有什么好做的一个“联系页面”。这对于一般的ASP.NET页面来说很重要。
+1:很好的解释! – naveen 2011-02-10 17:25:31