asp.net高级教程(五)---实战篇(中)

ASP.net视频教程从入门到高级+电子书 共24GB 超全面(百度云网址)) 收集了几家培训机构的教学视频 各一套 非常全面 从入门到精通 。课件+代码+视频。赠送 ASP.net ,C# 电子书 共24.12GB 立即下载
做好准备工作,现在就要动真格的了,先让我们看看用户注册的实现。前边已经讲过,a
sp.net可以实现业
务逻辑和html代码分离,那么让我们来看看到底是如何实现的,下面这个文件是用户注
册的页面部分,原型是
根据我站点的风格制作的:

<%@Page language="c#" Codebehind="Register.cs" AutoEventWireup="false"
Inherits="bbs.Register" %>
<%@Register Tagprefix="My" Namespace="bbs.uctrl"%>
<html><head>
<TITLE>新用户注册</TITLE>
<meta name=vs_targetSchema content="HTML 4.0">
<link rel="stylesheet" href="images/style.css">
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#"></head>
<script language=javascript>
function OnPreview()
{
divPreview.innerHTML = Form1.txtSignature.value ;
}
</script>
<body>

<form method="post" runat="server" ID=Form1>

<My:MyHead id="myHead1" runat="server"></MY:MYHEAD>

<!----------------------外面表格形成边框-------------------------------------
->
<table width='722' border='0' cellspacing=0
cellpadding='0' align='center'>
<TBODY>
<tr>
<!-------------------左边竖线---------------------------------------------->
<td bgcolor='#0097c0' width='1'>
<img src='images/Shim.gif' width=1>
</td>
<td width=720 align=middle><br><br><br>
<!-------------------左边竖线---------------------------------------------->


<!--------------新用户注册开始---------------------------------------------->

<table width=600 align=center border=0 cellpadding=4 cellspacing=1
id="tblRegister" class=cn bgcolor=#000000 runat=server>
<TBODY>
<tr bgcolor=#ffffff>
<td colspan=3>
<p align=center>新用户注册</p>
</td>
</tr>
<!--------------用户名开始---------------------------------------------------
----->
<tr bgcolor=#ffffff>
<td width=60>
用户名
</td>
<td width=300>
<asp:TextBox id="txtUserName" maxlength=20 columns=20
runat="server"></asp:TextBox>
<font color=red>*</font>
</td>
<td width=240>
用户笔名,4-20字符
<asp:requiredfieldvalidator id="reqUserName" display=Dynamic
controltovalidate="txtUserName" runat=Server>
不能为空!
</asp:requiredfieldvalidator>
<asp:regularexpressionvalidator id="regUserName" display=Dynamic
controltovalidate="txtUserName" runat=Server
validationexpression="[^']{4,20}">
用户名非法!
</asp:regularexpressionvalidator>
<asp:customvalidator id="cusUserName" controltovalidate="txtUserName"
onservervalidate="ValidUser" display=Dynamic runat=Server>


该用户已存在。
</asp:customvalidator>
</td>
</tr>
<!--------------用户名结束---------------------------------------------------
----->

<!--------------用户密码开始-------------------------------------------------
------->
<tr bgcolor=#ffffff>
<td width=60>
密码
</td>
<td width=300>
<asp:TextBox id="txtPassword" maxlength=10 columns=10
textmode=Password runat=server></asp:TextBox>
<font color=red>*</font>
</td>
<td width=240>
用户密码,4-10字符
<asp:requiredfieldvalidator id=Requiredfieldvalidator1 display=Dynamic
controltovalidate="txtPassword" runat=Server>
不能为空!
</asp:requiredfieldvalidator>
<asp:regularexpressionvalidator id=Regularexpressionvalidator1
display=Dynamic
controltovalidate="txtPassword" runat=Server
validationexpression="[^']{4,10}">
密码非法!
</asp:regularexpressionvalidator>
</td>
</tr>
<!--------------用户密码结束-------------------------------------------------
------->

<!--------------验证密码开始-------------------------------------------------
------->
<tr bgcolor=#ffffff>
<td width=60>
验证密码
</td>
<td width=300>
<asp:TextBox id=txtPassword1 maxlength=10 columns=10
textmode=Password runat=server></asp:TextBox>
<font color=red>*</font>
</td>
<td width=240>
再次输入密码。
<asp:comparevalidator id="comPassword" display=Dynamic
controltocompare="txtPassword" controltovalidate="txtPassword1"
runat=Server>
两次录入的密码不同!
</asp:comparevalidator>
</td>
</tr>
<!--------------验证密码结束-------------------------------------------------
------->

<!--------------email开始----------------------------------------------------
---->
<tr bgcolor=#ffffff>
<td width=60>
Email
</td>
<td width=300>
<asp:TextBox id="txtEmail" maxlength=100 columns=30
runat=server></asp:TextBox>
</td>
<td width=240>
您的电子邮件地址,您可以不填,但请不要胡填。
<asp:regularexpressionvalidator id="regEmail" display=Dynamic
controltovalidate="txtEmail" validationexpression="[^']*" runat=Server>
非法字符
</asp:regularexpressionvalidator>
</td>
</tr>
<!--------------email结束----------------------------------------------------
---->

<!--------------个人主页开始-------------------------------------------------
------->
<tr bgcolor=#ffffff>
<td width=60>
个人主页
</td>
<td width=300>
<asp:TextBox id="txtHomepage" maxlength=150 columns=30
runat=server></asp:TextBox>
</td>
<td width=240>
您的主页,您可以不填,但请不要胡填。
<asp:regularexpressionvalidator id="regHomepage" display=Dynamic
controltovalidate="txtHomepage" validationexpression="[^']*" runat=Server>
非法字符。
</asp:regularexpressionvalidator>
</td>
</tr>
<!--------------个人主页结束-------------------------------------------------
------->



<!--------------签名开始-----------------------------------------------------
--->
<tr bgcolor=#ffffff>
<td width=60>
签名
</td>
<td width=300>
<asp:TextBox id="txtSignature" maxlength=150 columns=30 rows=6
textmode=MultiLine runat=server></asp:TextBox>
</td>
<td width=240 valign=top>
<div id="divPreview">
你可以制作自己的签名,不超过255个字符,不能用script。<br><br>
</div><br>

<input type=button id="btnPreview" value="预览" onclick="OnPreview()"><br>
<asp:regularexpressionvalidator id=Regularexpressionvalidator2
display=Dynamic
controltovalidate="txtSignature" validationexpression="[^']{0,255}"
runat=Server>
使用非法字符或超过255个字符。
</asp:regularexpressionvalidator>
</td>
</tr>
<!--------------签名结束-----------------------------------------------------
--->

<tr bgcolor=#ffffff>
<td colspan=3 align=center>
<asp:button id="btnSubmit" text="确认" onclick="OnSubmit"
runat=Server></asp:button>
</td>
</tr>
</table><br><br><br>
<!----------------------------------新用户注册结束---------------------->

<!-------------------右边竖线---------------------------------------------->
<td bgcolor='#0097c0' width='1'>
<img src='images/Shim.gif' width=1>
</td>
<!-------------------右边竖线---------------------------------------------->
</tr>

<!-------------------下边横线---------------------------------------------->
<tr>
<td colspan=3 height=1 bgcolor=#0097c0><img src='images/shim.gif'width=1
height=1></td>
</tr>
<!-------------------下边横线---------------------------------------------->
</table>

<My:bottom id="myBottom" runat="server"></My:bottom>
</form>
</BODY></HTML>

<!--------------------文件结束--------------------------------->

怎么样,看上去很熟悉吧,除了页首两句及下面webform中带runat=server的webcontrol
,是不是和普通
的html一样?注意到页首第一句中的Codebehind="Register.cs"吗,它指定本页后面的
代码文件是
register.cs,这是asp.net提供的一种机制,它可以将业务逻辑隐藏在与.aspx同名的cs
文件中,而运行时先
把这个cs文件编译,这样不但可以提高运行效率,也使代码隐藏起来,避免了asp中由于
系统漏洞而造成源码泄漏所造成的问题。那么,这个包含业务逻辑的代码文件是怎样的
呢?下面是这个文件:
namespace bbs
{
using System;
using System.Collections;
using System.ComponentModel;
using System.Data.SQL;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using bbs.uctrl ;
//using bbs.MyClass ;
using MyOwnClass ;

/// <summary>
/// Summary description for Register.
/// </summary>
public class Register : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnSubmit;
protected System.Web.UI.WebControls.TextBox txtHomepage;
protected System.Web.UI.WebControls.TextBox txtEmail;
protected System.Web.UI.WebControls.CompareValidator comPassword;
protected System.Web.UI.WebControls.TextBox txtPassword1;
protected System.Web.UI.WebControls.RegularExpressionValidator
Regularexpressionvalidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator
Requiredfieldvalidator1;
protected System.Web.UI.WebControls.TextBox txtPassword;
protected System.Web.UI.WebControls.CustomValidator cusUserName;
protected System.Web.UI.WebControls.RegularExpressionValidator regUserName;
protected System.Web.UI.WebControls.RequiredFieldValidator reqUserName;


protected System.Web.UI.WebControls.Label lblMessage;
protected System.Web.UI.WebControls.TextBox txtUserName;
public MyHead myHead1 ;

//构造函数
public Register()
{
Page.Init += new System.EventHandler(Page_Init);
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//
// Evals true first time browser hits the page
//
}
}

protected void Page_Init(object sender, EventArgs e)
{
//
// CODEGEN: This call is required by the ASP+ Windows Form Designer.
//
InitializeComponent();
this.myHead1.Position = 2 ;
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler (this.Page_Load);
}

//监测用户是否存在
public bool ValidUser(Object sender , string value)
{
BBSUser myUser = new BBSUser() ;
bool bExists ;
try
{
bExists = myUser.GetUser(this.txtUserName.Text) ;
}
catch(Exception e) //如果出现异常
{
#if DEBUG
Response.Write (e.Message) ;
return false ;
#endif
Server.Transfer("error.aspx") ;

}

return !bExists ;
}

//提交按钮点击
public void OnSubmit(Object sender , EventArgs e)
{
if (Page.IsValid)
{
//数据入库
try
{
BBSUser myUser = new BBSUser() ;
if(!myUser.GetUser(txtUserName.Text))
{
myUser.CreateUser(BBSUser.CreateType.Create , txtUserName.Text ,
txtPassword.Text ,
txtEmail.Text , txtHomepage.Text , "") ;
}
}
catch(Exception exp)
{
#if DEBUG
Response.Write ("出现异常:" + exp.Message) ;
return ;
#endif//DEBUG
Server.Transfer("error.aspx") ;
}
}
}


}

}

什么?还是看着眼熟?没错,是不是和前边我定义的那个类差不多?是,本来asp.net就
是把这个页当作一个对象,注意类定义的那行代码:public class Register :
System.Web.UI.Page , 前面你可以理解,是定义一个Register对象,那:号后面的Syst
em.Web.UI.Page是什么意思呢?它说明这个Regsiter类是System.Web.UI.Page类的派生
类(子类),也就是说Register类除了自己成员变量、属性、方法外,还继承
System.Web.UI.Page类的所有公共(public)或保护(protected)成员变量、属性和方法。
明白了这些,你可以
安心坐下来研究代码了,做好下面关于表单验证内容的学习准备。
ASP.NET高级编程 ASP.NET高级编程。PPT。ASP.NET高级编程,ASP.NET高级编程 立即下载

相关推荐

安卓风控对抗实战:如何用AOSP定制ROM绕过Momo、AIDA64等检测(从环境搭建到设备画像)

本文详细解析了如何通过定制AOSP ROM绕过Momo、AIDA64等安卓风控检测工具的设备指纹识别。从环境搭建到硬件参数修改,再到内核级特征混淆,提供了一套完整的底层对抗方案,显著提升设备伪装通过率。

weixin_30687051的博客 490

asp.net高级教程

asp.net高级教程(一)---asp.net , 还是asp+?  看到这个标题你可能会笑,alpha版的时候MS叫它asp+,后来出了beta1版,就改名叫asp.net了,那还不是一回事吗?你错了,这不仅仅是一个简单的叫什么的问题,而是一个它到底是什么的问题。关于asp.net到底是什么,恐怕你已经看过不少这类文章,并且有自己的理解,但恐怕大多数人的理解不是那么正确。问个简单的问题,asp

PConline(伤心太平洋) 1851

ROS牛耕法全覆盖规划:从算法原理到清洁机器人实战解析

本文深入解析ROS牛耕法全覆盖规划算法在清洁机器人中的应用,从算法原理到实战优化技巧全面覆盖。详细介绍了地图预处理、区域分解和路径优化等关键步骤,并分享实际案例中的解决方案,帮助开发者提升机器人清扫效率和覆盖率。

weixin_27013291的博客 392

Web窗体的高级控件

第6章  Web窗体的高级控件 上一章中讲解了ASP.NET中常用的基本控件,ASP.NET不仅提供了常用的基本控件如标签控件、文本框控件等,还提供了高级的Web窗体的控件。这些控件能够轻松实现更多在ASP开发中难以实现的效果。 6.1  登录控件 对于目前常用的网站系统而言,登录功能是必不可少的,例如论坛、电子邮箱、在线购物等。登录功能能够让网站准确的验证用户的身份。用户能够访问该网站时,

yantaiwuyansong的专栏 939

BLE天线设计避坑:NRF52832官方50欧姆阻抗匹配的3个常见误区

本文深入解析NRF52832蓝牙SoC天线设计中的常见误区,重点探讨50欧姆阻抗匹配的3个关键问题:PCB板材介电常数差异、匹配元件寄生参数及VSWR测试。通过实测数据和优化方案,帮助工程师规避设计陷阱,提升BLE通信性能。

beer8的博客 214

Microchip Studio 7.0 从下载到项目调试:AVR开发者的完整入门指南(附常见问题解决)

本文为AVR开发者提供了Microchip Studio 7.0从下载安装到项目调试的完整入门指南。详细介绍了如何获取安装包、创建第一个AVR工程项目,并配置编译与调试环境。同时,文章重点解决了开发过程中常见的编译错误和仿真问题,帮助开发者快速上手并高效使用这一官方集成开发环境。

joy55的博客 335

asp.net高级教程(一)---asp.net , 还是asp+ ?

看到这个标题你可能会笑,alpha版的时候MS叫它asp+,后来出了beta1版,就改名叫asp.net了,那还不是一回事吗?你错了,这不仅仅是一个简单的叫什么的问题,而是一个它到底是什么的问题。关于asp.net到底是什么,恐怕你已经看过不少这类文章,并且有自己的理解,但恐怕大多数人的理解不是那么正确。问个简单的问题,asp.net和asp有什么关系?恐怕chinaasp .net版版主的看法代

★★创造未来★★ 1437

Windows非分页缓冲池内存泄漏实战:PoolMon与RAMMap高效排查指南

本文详细介绍了Windows系统中非分页缓冲池内存泄漏的实战排查方法。当系统出现卡顿且内存占用异常增长时,通过RAMMap工具快速定位非分页缓冲池异常,并利用PoolMon监控内核内存分配标签,精准锁定泄漏源。文章提供了从确认症状、安装工具到使用findstr命令溯源驱动文件的完整五步排查流程,并总结了常见泄漏标签与解决方案,帮助用户高效解决深层系统内存问题。

weixin_28455801的博客 1011

asp.net高级教程(五):实战篇(中)

  做好准备工作,现在就要动真格的了,先让我们看看用户注册的实现。前边已经讲过,asp.net可以实现业务逻辑和html代码分离,那么让我们来看看到底是如何实现的,下面这个文件是用户注册的页面部分,原型是根据我站点的风格制作的:Inherits="bbs.Register" %>新用户注册function OnPreview(){divPreview.innerHTML = Form1.txtS

The key to .Net 410

别再瞎选了!手把手教你根据车型等级,在CarSim里快速匹配最合适的动力学模型

本文详细介绍了如何在CarSim中根据车型等级快速匹配最合适的动力学模型,提升仿真效率。通过分析CarSim模型库与A/B/C/D级车标准的对应关系,提供四步精准定位方法和不同车型的特殊处理技巧,帮助工程师避免常见错误,显著缩短模型准备时间。

weixin_27015733的博客 263

kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录

参数名 说明 net.ipv4.tcp_max_tw_buckets = 6000 系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。 net.ipv4.tcp_rmem = 4096 87380 4194304 接收窗口的最大大小...

weixin_46691674的博客 6893

asp.net高级教程(五)-实战篇(中)

(结合论坛用户操作谈asp.net表单验证)(中) 做好准备工作,现在就要动真格的了,先让我们看看用户注册的实现。前边已经讲过,asp.net可以实现业务逻辑和html代码分离,那么让我们来看看到底是如何实现的,下面这个文件是用户注册的页面部分,原型是根据我站点的风格制作的:新用户注册 function OnPreview() { divPreview.innerHT

zgqtxwd的专栏 469

【2026最新版】python点云处理算法汇总(长期更新版)

python点云处理算法整理。博客长期更新,最近一次更新时间为:2026年10月4日。

点云侠的博客 42万+

深入浅出Asp.Net Core MVC应用开发系列-入门实战篇

ASP.NET Core MVC 教程摘要(148字) 本教程讲解ASP.NET Core MVC与Entity Framework Core整合开发,重点对比了Razor Pages与传统MVC架构。教程涵盖MVC三大组件(模型、视图、控制器)的协同机制,以及Razor视图引擎的混合编程特性。详细介绍了Entity Framework的三种模式(EFDesigner/CodeFirst/DbFirst)及核心配置方法,包括数据库上下文设置、数据模型设计规范(含数据注解和Fluent API)。特别强调了C

morliz的博客 1380

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ASP.NET项目开发全程实录第3版附带代码:全面的.NET教程与实践

ASP.NET项目开发全程实录第3版附带代码:全面的.NET教程与实践 【下载地址】ASP.NET项目开发全程实录第3版附带代码 《ASP.NET项目开发全程实录第3版》是一本全面系统的ASP.NET开发教程,适合.NET开发者从入门到进阶学习。本书包含基础知识、高级应用和实战项目三大部分,涵盖ASP.NET MVC、W...

gitblog_06751的博客 831

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了ASP.NET MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASP.NET MVC 框架知识。与此同时,小编也推荐一款轻量级控件Compone...

3170

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ASP.NET 教程

摘要:本文介绍2025年最新版ASP.NET Core全栈开发教程,从环境准备到项目部署。内容涵盖.NET 9 SDK安装、项目创建方式、项目结构解析,以及EF Core数据库操作、最小API等核心技术。提供30天学习路线和优质资源推荐,包括官方文档、视频教程和实战项目。最后给出快速创建带身份验证的Web应用命令,帮助开发者快速入门ASP.NET Core 9开发。

likuolei的博客 1550

asp.net教程下载大全

XML与ASP网站实作大全 ASP经典百例 ASP.NET 1.1专业开发 ASP.NET完全手册 ASP.NET 技术参考 ASP.netdatabase开发圣经

秋风乍起 1955

ASP.NET MVC 教程学习

1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.NET MVC 的需求是什么,只有更好的理解了为什么需要MVC,出于什么目的开发的MVC 框架,用MVC 框架来弥补什么或是提升什么,才能利用其开发出最高效最满意的Web系统。   为什么会出现ASP.NET平台下的MVC框架? 说明:本文摘自InfoQ,是作者 Jonathan Allen 2007年发布的一篇的文章,首先描述了 WebForms的优

weixin_53911715的博客 1396
上一篇: asp.net高级教程(四)---实战篇(上)
下一篇: ASP.NET中Cookie编程的基础知识(1)
masterall
博客等级 码龄22年 17粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值