web-dev-qa-db-ja.com

runat = serverを使用してフォームタグ内に配置する必要があります

私はこれを午前中ずっと試みましたが、結果はありませんでした。私が何を間違っているのか理解できないようです。 2つのリンク(他の多くの役に立たないリンク)をチェックアウトしましたが、まだ問題を解決していません。これはWebUserControlです...

次のエラーを受け取ります:タイプ 'TextBox'のコントロール 'HeadContent_CareersViewPosting_txtFirstName'は、runat = serverでフォームタグ内に配置する必要があります。

すでに提案を試みました herehere および here 、結果なし。それでもまったく同じメッセージを受け取りました。いくつかの新しい提案をいただければ幸いです!

<%@ 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>

現在、ユーザーコントロールはテスト用のダミーWebページに配置されています。これが「ダミー」ページコードです。

<%@ 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>
12
Volearix

ASPNet Webフォームでは、すべてがフォームタグ内で実行する必要があります。

すべてのサーバーコントロールは<form>タグ内に表示する必要があり、<form>タグにはrunat="server"属性を含める必要があります。 runat="server"属性は、サーバーでフォームを処理する必要があることを示します。また、囲まれたコントロールにサーバースクリプトからアクセスできることも示します。

<form runat="server">

...HTML + server controls

</form>

ダミーページで次のことを試して、サーバーコントロールの実行を許可します。

<%@ 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>

また、〜/ Site.Masterファイルに<form runat="server">が含まれていることを確認してください。含まれていない場合は、それがフォームタグをすべて含む場所であることが一般的です。

詳細はこちらをご覧ください: http://www.w3schools.com/aspnet/aspnet_forms.asp

13
Martin Brown

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. */
    }

cr。 Rohit Raoから

英語が下手でごめんなさい。

3
Mitr Raiputta

すべてのサーバーコントロールは<form>タグ内に表示する必要があり、<form>タグにはrunat="server"属性を含める必要があります。

Asp.netコントロールはすべてサーバーコントロールです。したがって、これらはrunat="server"属性を持つformタグ内に配置する必要があります。

<form runat="server">

place server controls here...

</form>
0
Rae Lee