Control' MainContent_forenameTxt'类型' TextBox'必须放在带有runat = server的表单标记内

时间:2015-03-20 17:44:51

标签: c# html asp.net

控件'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 MainContent - 在此表格中放置表格。 - 删除所有表格 - 创建一个不使用MasterPage的新测试页(按钮可以工作) - 与我的其他网站相比

我不是解决问题的专家,并且很难找到这个错误,你很可能会发现这个错误比我自己快得多。 我想为这么大的问题/问题道歉,但我希望将其排除在外,不再重复我的问题。

感谢您查看此内容。

1 个答案:

答案 0 :(得分:0)

我从未发现过这个问题。但是,我找到了一个解决方法,直到找到足够的替代方案。

我在Visual Studio中开始了一个新的项目,并决定挑选出一些信息,这些信息对于网站来说仍然是一个绝对必要的,看起来仍然相对不错,并且有效。

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

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