“类型“TextBox”的控件“FullName”必须放在具有 runat=server 的窗体标记内”的解决办法

我是刚开始学.net的,对其产生了浓厚的兴趣。

在遇到好多问题时多亏网上很多朋友的帮助。

下面我就把自已学习中遇到第一个较棘手的问题跟大家DOTNET菜鸟们分享。

书上的原代码是这样的

<html>
<head>
<title>Holiday page</title>
</head>

<body>
<form action="holidayresponse.aspx" method="post" >
<h1>Feiertag Holidays</h1>
Please enter your details here.
<br><br>
Name:<asp:textbox id="FullName" runat="server"/>
<br><br>
Address:<asp:textbox id="Address" rows="5" textmode="multiline" runat="server"/>
<br><br>
Sex-
<asp:radiobuttonlist id="Sex" runat="server">
<asp:listitem  value="Male"/>
<asp:listitem  value="Female"/>
</asp:radiobuttonlist>
Please select the destination you would like details on:
<asp:dropdownlist id="Destination" runat="server">
<asp:listitem value="Madrid"/>
<asp:listitem value="Barcelona"/>
<asp:listitem value="Lisbon"/>
<asp:listitem value="Oslo"/>
<asp:listitem value="Prague"/>
</asp:dropdownlist>
<br><br>
<input type="Submit">
<input type="Reset">
</form>
</body>
</html>
<form id="WebForm2" method="post" runat="server"><FONT
face=宋体></FONT>
<h1>Feiertag Holidays</h1>
Please enter your details here.
<br><br>
Name:<asp:textbox id="FullName" runat="server"/>
<br><br>
Address:<asp:textbox id="Address" rows="5" textmode="multiline"
runat="server"/>
<br><br>
Sex-
<asp:radiobuttonlist id="Sex" runat="server">
<asp:listitem value="Male"/>
<asp:listitem value="Female"/>
</asp:radiobuttonlist>
Please select the destination you would like details on:
<asp:dropdownlist id="Destination" runat="server">
<asp:listitem value="Madrid"/>
<asp:listitem value="Barcelona"/>
<asp:listitem value="Lisbon"/>
<asp:listitem value="Oslo"/>
<asp:listitem value="Prague"/>
</asp:dropdownlist>
<br><br>
<input type="submit" value=提交查询内容>
<input type="reset" value=重置>

  </form>

但我发现运行时通不过,总提示:

类型“TextBox”的控件“FullName”必须放在具有 runat=server 的窗体标记内。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Web.HttpException: 类型“TextBox”的控件“FullName”必须放在具有 runat=server 的窗体标记内。

下面是我总结了网上各种信息,悟出了一个方法。虽然高手们也许会见笑。但对菜鸟们来说应该也是件大功吧,呵呵

正确的代码如下

<script language="vb" runat="server">
sub do_feedback(sender as object,e as system.eventargs)
server.transfer("holidayresponse.aspx")
end sub
</script>
<html>
<head>
<title>Holiday page</title>
</head>
<body>
<form runat="server" method="post" id="form1">
<h1>Feiertag Holidays</h1>
Please enter your details here.
<br/><br/>
Name:<asp:textbox runat="server" id="fullname"/>
<br/><br/>
Address:<asp:textbox runat="server" rows=5 textmode="multiline" id="address"/>
<br/><br/>
Sex -
<asp:radiobuttonlist id="sex" runat="server">
<asp:listitem value="Male"/>
<asp:listitem value="Female"/>
</asp:radiobuttonlist>
Please select the destination you would like details on:
<asp:dropdownlist id="destination" runat="server">
<asp:listitem value="Madrid"/>
<asp:listitem value="Beijing"/>
<asp:listitem value="Barcelona"/>
<asp:listitem value="Lisbon"/>
<asp:listitem value="Oslo"/>
</asp:dropdownlist>
<br/><br/>
<asp:button id="cmdsubmit" text="提交" onclick="do_feedback" runat="server">
</asp:button>
<input type="Reset">
</form>
</body>
</html>

谢谢,全文完。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebForm1.aspx.cs" Inherits="WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>用户注册</title> <style type="text/css"> .error { color: red; } </style> </head> <body> <form id="form1" runat="server"> <div> <label for="txtName">姓名:</label> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtName" ErrorMessage="用户必须填写" ForeColor="Red" Display="Dynamic"></asp:RequiredFieldValidator> </div> <div> <label for="txtPassword">密码:</label> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtPassword" ValidationExpression="^.{8,}$" ErrorMessage="密码必须八位以上" ForeColor="Red" Display="Dynamic"></asp:RegularExpressionValidator> </div> <div> <label for="txtConfirmPassword">确认密码:</label> <asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtConfirmPassword" ControlToCompare="txtPassword" ErrorMessage="两次密码必须一致" ForeColor="Red" Display="Dynamic"></asp:CompareValidator> </div> <div> <label for="txtPhone">手机号:</label> <asp:TextBox ID="txtPhone" runat="server"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtPhone" ValidationExpression="^1[35789][0-35-9]\d{8}$" ErrorMessage="手机号格式不正确" ForeColor="Red" Display="Dynamic"></asp:RegularExpressionValidator> </div> <div> <label>请修正以下错误:</label> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowSummary="true" ShowMessageBox="false" HeaderText="" CssClass="error"></asp:ValidationSummary> </div> <div> <asp:Button ID="btnRegister" runat="server" Text="注册" OnClick="btnRegister_Click" /> </div> </form> </body> </html>
最新发布
05-12
### ASP.NET Web Forms 用户注册表单中的验证控件ASP.NET Web Forms 中,`RequiredFieldValidator`、`RegularExpressionValidator` 和 `CompareValidator` 是常用的验证控件,它们可以确保用户提交的数据符合预期的要求。以下是这些验证控件的具体使用示例和说明。 #### 验证控件概述 - **RequiredFieldValidator**: 确保某个输入框不能为空[^3]。 - **RegularExpressionValidator**: 使用正则表达式验证用户的输入是否符合特定模式[^2]。 - **CompareValidator**: 将一个输入控件的值与其他输入控件的值或固定值进行比较[^1]。 - **ValidationSummary**: 显示页面中所有验证错误的消息汇总[^3]。 #### 示例代码 以下是一个完整的用户注册表单示例,展示了如何使用上述验证控件: ```html <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="WebFormsApp.Register" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>User Registration</title> </head> <body> <form id="form1" runat="server"> <div> <h2>Registration Form</h2> <!-- Username --> <asp:Label ID="lblUsername" runat="server" AssociatedControlID="txtUsername" Text="Username:" /> <asp:TextBox ID="txtUsername" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvUsername" runat="server" ControlToValidate="txtUsername" ErrorMessage="* Username is required." ForeColor="Red" /> <br /> <!-- Email --> <asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail" Text="Email:" /> <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvEmail" runat="server" ControlToValidate="txtEmail" ErrorMessage="* Email is required." ForeColor="Red" /> <asp:RegularExpressionValidator ID="revEmail" runat="server" ControlToValidate="txtEmail" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ErrorMessage="* Invalid email format." ForeColor="Red" /> <br /> <!-- Password --> <asp:Label ID="lblPassword" runat="server" AssociatedControlID="txtPassword" Text="Password:" /> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvPassword" runat="server" ControlToValidate="txtPassword" ErrorMessage="* Password is required." ForeColor="Red" /> <br /> <!-- Confirm Password --> <asp:Label ID="lblConfirmPassword" runat="server" AssociatedControlID="txtConfirmPassword" Text="Confirm Password:" /> <asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvConfirmPassword" runat="server" ControlToValidate="txtConfirmPassword" ErrorMessage="* Confirmation password is required." ForeColor="Red" /> <asp:CompareValidator ID="cvPasswordMatch" runat="server" ControlToValidate="txtConfirmPassword" ControlToCompare="txtPassword" Operator="Equal" ErrorMessage="* Passwords do not match." ForeColor="Red" /> <br /> <!-- Submit Button --> <asp:Button ID="btnSubmit" runat="server" Text="Register" OnClick="btnSubmit_Click" /> <!-- Validation Summary --> <asp:ValidationSummary ID="vsErrorSummary" runat="server" HeaderText="Please correct the following errors:" ShowMessageBox="True" ShowSummary="False" ForeColor="Red" /> </div> </form> </body> </html> ``` #### 代码解释 1. **用户名 (Username)**: - 使用 `RequiredFieldValidator` 确保用户名字段不为空[^3]。 2. **电子邮件 (Email)**: - 同时使用 `RequiredFieldValidator` 和 `RegularExpressionValidator` 来验证邮箱地址是否有效[^2]。 3. **密码 (Password)**: - 使用 `RequiredFieldValidator` 确保密码字段不为空[^3]。 4. **确认密码 (Confirm Password)**: - 结合 `RequiredFieldValidator` 和 `CompareValidator` 实现两次输入密码的一致性校验。 5. **验证摘要 (ValidationSummary)**: - 提供了一个集中展示所有验证错误的方式[^3]。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值