必须使用runat = server放置在表单标记内

Vol*_*rix 13 html c# asp.net tags runatserver

我整个上午一直在尝试这个,没有结果.我似乎无法弄清楚我做错了什么.我已经检查了两个链接(在许多其他无用的链接中)并且尚未解决我的问题.这是一个WebUserControl ......

收到以下错误:控件'TextBox'类型的'HeadContent_CareersViewPosting_txtFirstName'必须放在带有runat = server的表单标记内.

已经尝试过这里的建议,这里这里都没有结果.仍然收到完全相同的消息.一些新的建议将不胜感激!

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Careers View Posting.ascx.cs" Inherits="ascxStagingApplication.Careers.Careers_View_Posting" %>
<asp:Panel ID="pnlResume" runat="server">
    <table ID="tblMain" runat="server">
        <tr>
            <td>
                <asp:Label ID="lblFirstName" runat="server" Text="* First Name"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Label ID="lblLastName" runat="server" Text="* Last Name"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                <asp:Label ID="lblEmail" runat="server" Text="* Email"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
            </td>

        </tr>
        <tr>
            <td>
                <asp:Label ID="lblResume" runat="server" Text="* Resume"></asp:Label>
            </td>
            <td>
                <asp:FileUpload ID="fupResume" runat="server" />
            </td>
        </tr>
        <tr>
            <td>
                <asp:Button ID="btnSubmit" runat="server" Text="Submit"/>
            </td>
        </tr>
    </table>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

用户控件当前被放置在虚拟网页上以进行测试.这是'虚拟'页面代码.

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Page Careers View Posting.aspx.cs" Inherits="ascxStagingApplication.Careers.Page_Careers_View_Posting" %>

<%@ Register Src="~/Careers/Careers View Posting.ascx" TagPrefix="uc1" TagName="CareersViewPosting" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <uc1:CareersViewPosting runat="server" id="CareersViewPosting" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

小智 14

在ASPNet webforms中 - 一切都需要在表单标记中运行.

所有服务器控件都必须出现在<form>标记中,并且<form>标记必须包含该runat="server"属性.该runat="server"属性表示应在服务器上处理表单.它还表明服务器脚本可以访问所附的控件:

<form runat="server">

...HTML + server controls

</form>
Run Code Online (Sandbox Code Playgroud)

在您的虚拟页面中,尝试以下操作以允许服务器控件运行.

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Page Careers View Posting.aspx.cs" Inherits="ascxStagingApplication.Careers.Page_Careers_View_Posting" %>

<%@ Register Src="~/Careers/Careers View Posting.ascx" TagPrefix="uc1" TagName="CareersViewPosting" %>
<form runat="server">
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <uc1:CareersViewPosting runat="server" id="CareersViewPosting" />
</asp:Content>
</form>
Run Code Online (Sandbox Code Playgroud)

另外 - 检查你的〜/ Site.Master文件是否包含<form runat="server">if - 如果它是一个非常典型的地方,那么它就是拥有所有封闭表单标签的地方.

你可以在这里阅读更多内容:http://www.w3schools.com/aspnet/aspnet_forms.asp


Mit*_*tta 5

如果你把 runat="server" 放在右边但仍然出错,请试试这个代码。

 public override void VerifyRenderingInServerForm(Control control)
    {
         /* Confirms that an HtmlForm control is rendered for the specified ASP.NET
       server control at run time. */
    }
Run Code Online (Sandbox Code Playgroud)

河 来自 Rohit Rao

抱歉我英语不好。