ASP.net联系我们页面

时间:2011-02-10 17:16:30

标签: c# asp.net css

这是一个非常简单的问题,因为我是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>
    &nbsp;</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>

6 个答案:

答案 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页面的基础。