类型为"TextBox"的控件"MainContent_forenameTxt"必须放置在具有 runat=server 的表单标记内



类型为'TextBox'的控件'MainContent_forenameTxt'必须放置在runat=server的表单标记内。[以及类似错误]这个错误已经困扰我好几天了。我已经将问题缩小到我的母版页中的一个问题。出于某种原因,ASP文本框、按钮等需要在一个表单中(不一定是这样),但我的程序决定它想要这样。因此,当我将表单放入时,这个问题就开始了,声明我只能有一个runat="server"的表单。经过大量的谷歌搜索和询问,我得到了一段代码:

        public override void VerifyRenderingInServerForm(Control Control)
    {
        //base.VerifyRenderingInServerForm(Control);
    }

在我看来,这完全没有任何作用。它从来没有被调用过,而且里面什么都没有,但它会显示页面——所以我完全不知道它是做什么的。

所以继续下去,它开始困扰我,然后我意识到我的按钮实际上什么都没做,除了"刷新"页面。(请参阅页面底部附近的onClicks

<%@ Page Title="Registration" Language="C#" AutoEventWireup="true" MasterPageFile="~/MasterPage.Master" CodeFile="registration.aspx.cs" Inherits="registration" %>

<div class="contact-bg2">
 <div class="container">
     <div class="booking">
         <h3>Register</h3>
         <p>
         </p>
         <div class="col-md-8 booking-form">
             <h5>Forename</h5>
             <asp:TextBox ID="forenameTxt" runat="server"></asp:TextBox>
             <h5>Surname</h5>
             <asp:TextBox ID="surnameTxt" runat="server"></asp:TextBox>
             <h5>Telephone</h5>
             <asp:TextBox ID="telephoneTxt" runat="server"></asp:TextBox>
             <h5>Mobile</h5>
             <asp:TextBox ID="mobileTxt" runat="server"></asp:TextBox>
             <h5>Address</h5>
             <asp:TextBox ID="addressLn1Txt" placeholder="Line 1" runat="server"></asp:TextBox>
             <asp:TextBox ID="addressLn2Txt" placeholder="Line 2" runat="server"></asp:TextBox>
             <asp:TextBox ID="addressLn3Txt" runat="server" placeholder="Line 3"></asp:TextBox>
             <h5>Postal Code</h5>
             <asp:TextBox ID="postalTxt" runat="server"></asp:TextBox>
             <h5>Username</h5>
             <asp:TextBox ID="registerUsernameTxtbox" runat="server"></asp:TextBox>
             <h5>Password Confirm Password</h5>
             <asp:TextBox ID="registerPasswordTxtbox" runat="server" type="password"></asp:TextBox>&nbsp;&nbsp;
              <asp:TextBox ID="passwordConfirmTxt" runat="server" type="password"></asp:TextBox>
             <h5></h5>
             <asp:Button ID="submitBtn" runat="server" Text="SUBMIT" OnClick="submitBtn_Click" />
             <asp:Button ID="resetBtn" runat="server" Text="RESET" OnClick="resetBtn_Click" />
     </div>
         </div>
     </div>

    </asp:Content>

代码背后:

        protected void submitBtn_Click(object sender, EventArgs e)
    {

            //If there is any blank fields, these if statements will be run.
            try
            {
                //If the fields entered have all had an input, this if statement will submit it to the database.
                if (forenameTxt.Text != "" && surnameTxt.Text != "" && telephoneTxt.Text != "" && addressLn1Txt.Text != "" && addressLn2Txt.Text != "" && postalTxt.Text != "" && registerUsernameTxtbox.Text != "" && registerPasswordTxtbox.Text != "" && passwordConfirmTxt.Text != "")
                {
                    DLQueries reposit = new DLQueries();
                    //Refers to 'addCustomerAccount' in droversLodgeRepository 
                    reposit.addCustomerAccount(registerUsernameTxtbox.Text.ToString(),
                      registerPasswordTxtbox.Text.ToString(), forenameTxt.Text.ToString(),
                     surnameTxt.Text.ToString(), mobileTxt.Text.ToString(), telephoneTxt.Text.ToString(),
                        addressLn1Txt.Text.ToString(), addressLn2Txt.Text.ToString(),
                        addressLn3Txt.Text.ToString(), postalTxt.Text.ToString());
                    //Redirects to homepage
                }
                else
                {
                    Response.Redirect("homepage.aspx");
                }
            }
            catch (Exception)
            {
            }
    }
    protected void resetBtn_Click(object sender, EventArgs e)
    {
                    forenameTxt.Text = "";
                    surnameTxt.Text = "";
                    telephoneTxt.Text = ""; 
                    addressLn1Txt.Text = "";
                    addressLn2Txt.Text = "";
                    postalTxt.Text = "";
                    registerUsernameTxtbox.Text = ""; 
                    registerPasswordTxtbox.Text = "";
                    passwordConfirmTxt.Text = "";
    }

仅凭这一点,我从未看到任何问题(除非其他人能看到)。

所以现在,我认为这个问题在主页上。我浏览了主页,将其与我创建的一个旧网站进行了比较,但找不到问题所在。

头:

 <head id="Head1" runat="server">
<title>Page.Title</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Pinyon+Script' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Quicksand:400,700' rel='stylesheet' type='text/css'>
 <link href="css/bootstrap.css" rel='stylesheet' type='text/css'/>
<link href="css/style.css" rel="stylesheet" type="text/css" media="all"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="js/jquery.min.js"></script>
</head>

正文:

    <body>
    <div class="header">
     <div class="top-header">
         <div class="container">
             <div class="logo">
                    <a href="index.html"><img src="images/logo.png"/></a>
             </div>
             <span class="menu"> </span>
             <div class="m-clear"></div>
             <div class="top-menu">
                <ul>
                     <li class="scroll"><a href="homepage.aspx">HOME</a></li>
                     <li><a class="scroll" href="facilities.aspx">FACILITIES</a></li>
                    <li><a class="scroll" href="pricing.aspx">PRICS</a></li>
                     <li><a class="scroll" href="contactUs.aspx">CONTACT US</a></li>
                </ul>
                <script>
                    $("span.menu").click(function () {
                        $(".top-menu ul").slideToggle(200);
                    });
                </script>
             </div>
             <div class="clearfix"></div>
          </div>
      </div>
</div>

        <div id="body">
        <asp:ContentPlaceHolder runat="server" ID="FeaturedContent" />
        <section class="content-wrapper main-content clear-fix"> 
            <asp:ContentPlaceHolder runat="server" ID="MainContent" >
                </asp:ContentPlaceHolder>
        </section>
    </div>
    </>
    <!---->
    <div class="fotter">
        <div class="container">
            <h3>143 City Located Hotels World Wide</h3>
            <h4>"Hospitality, Quality & Good Locations. We only provide you with the best hotels" - John Deo</h4>
            <i class="man"></i>
        </div>
    </div>
    <!---->
    <div class="fotter-info">
        <div class="container">
            <div class="col-md-5 details">
                <div class="hotel-info">
                    <h4>ABOUT THIS HOTEL</h4>
                    <p>This hotel is a 4 Star Hotel found on the Isle of Mull, in Scotland. </p>
                    <p><b>In order to book for this hotel, you will require to create an account online!</b></p>
                </div>
                <div class="news">
                    <h4>LATEST NEWS</h4>
                    <h5>Grand Hotel Joins DeluxelHotels</h5>
                    <a href="#">15 AUG</a>
                    <h5>Happy Chirstmas To Everyone</h5>
                    <a href="#">15 AUG</a>
                    <h5>Best Places To Visit 2014</h5>
                    <a href="#">15 AUG</a>
                    <h5>Various Offers</h5>
                    <a href="#">15 AUG</a>
                </div>
                <div class="clearfix"></div>
            </div>
            <div class="col-md-7 details">
                <div class="join">
                    <h4>JOIN DELUXEHOTELS</h4>
                    <p>
                        TBA
                    </p>
                    <p>TBA</p>
                    <a href="aboutUs.aspx">READ MORE</a>
                </div>
                <div class="member">
                    <h4>MEMBERS AREA</h4>
                    <form id="Form1" runat="server">
                        <p>Username</p>
                        <asp:textbox id="txtUsername" runat="server"></asp:textbox>
                        <p>Password</p>
                        <asp:textbox id="txtPassword" textmode="Password" runat="server" />
                        <asp:button id="logoutBtn" runat="server" text="LOGOUT" visible="false" onclick="logoutBtn_Click" />
                        <asp:button id="loginBtn" runat="server" text="LOGIN" onclick="loginBtn_Click" />
                        &nbsp;&nbsp;&nbsp;&nbsp; 
                     <asp:button id="registerBtn" runat="server" text="REGISTER" onclick="registerBtn_Click" />
                   </form>
                </div>
                <div class="clearfix"></div>
            </div>
            <div class="clearfix"></div>
        </div>
    </div>
        </body>

现在只是补充一下。

我目前正在为我的网站使用BootStrap UI模板。我已经对可能导致问题的代码片段进行了重点介绍

我注意到/尝试过的事情:-MasterPage上的按钮工作正常。-"注册"页面上的按钮不起作用(即重置和提交)-注册页面上的参数太大,因此将所有详细信息都放在该方法中-主页面主要内容-在其中放置一个窗体。-删除所有表单-创建一个不使用MasterPage的新测试页(按钮确实有效)-与我的其他网站相比

我不是解决问题的专家,一直在努力寻找这个错误,你很可能会比我更快地发现这个错误。我想为这么大的问题道歉,但我想解决这个问题,以后不要再重复我的问题了。

谢谢你看这个。

我从未发现这个问题。然而,我找到了一个变通办法,直到我能找到一个足够的替代方案。

我在Visual Studio中启动了一个新项目,并决定挑选出每一条信息,这对于网站看起来仍然相对体面和有效来说是绝对必要的。

[这意味着,我在内容占位符上有一个表单,它包含所有内容,包括另一个内容占位符,其中来自其他页面的信息都在该占位符中]。

我仍然会遇到一些错误(很容易修复),但是override类现在由于一些调试发现而没有使用,我发现它正在覆盖按钮onClicks。

最新更新