嘿嘿,这里就简单的总结一下初步学习webform以及对他的认识,其实大家都认为webform很讨厌,因为好多都是给我们封装好的,而且现在好多的公司已经慢慢的从中逃离出来选择使用mvc架构,甚至好多的项目选择使用html和ashx来做项目,怎么说那,具体的市面上的情况对于我这个还未踏进社会的小菜鸟来说,具体的总结不清楚吧,无论怎么样还是来了解一下webform吧。

一.了解webform

首先我们在项目中新建一个网站,然后添加一个web窗体,然后我们会看到如下所示:

 

上面一个是aspx类,一个是aspx.cs类,而aspx.cs类是前台的类,帮助我们呈现页面的,由上面的截图可知,我们的前台类继承了page类,而page类继承了IHttpHandler接口,我们在前面的学习中可以知道,只要实现了IHttpHanlder接口的类都会存在一个方法,即ProcessRequest(),而该方法在这里是一个虚方法,那么它是可以重写的。

下面就来说一下前台类,首先我们打开前台类看第一行就看到了如上所示的一行代码,而Language指的是我们开发的语言,AutoEventWireup是指页面可执行事件,CodeFile指的是可执行代码,Inberits是继承的意思,由此可知:在这里我们的前台类继承了我们的后台类。

在这里我们的前台类其实就是一个html标签添加一个runat=server输出,那么他就不再是一个html页面即改变成为一个服务器控件,而控件的本质其实就是一个对象。这里我们首先要了解到这里。学习过继承关系我们知道,父类的属性或者方法在子类里面我们可以使用,但是转过来父类使用子类的属性或者方法当然在继承的关子中是不可能事件,转回来说,在这里仍然是在前台类的标签里面添加runat=server即可实现,.Net框架会帮助我们隐式创建对象,在这里我们看不到,但是可以借助微软内部的一个工具是可以查看到的。

二.登录实例如下:

public partial class fmLogin : System.Web.UI.Page
{
UsermessBll bll = new UsermessBll();
protected void Page_Load(object sender, EventArgs e)
{
if (Request.HttpMethod == "POST")
{
string context = this.txtname.Value; //获取txtname的值
string pwd = this.txtpwd.Value; //获取txtpwd的值
if (bll.GetLogin(context, pwd))
{
Response.Write("<script>alert('登陆成功')</script>");
}
else
{
Response.Write("<script>alert('登陆失败')</script>");
}
}
else
{
}
}
}
public class UsermessBll
{
UsermessDal dal = new UsermessDal();
public bool GetLogin(string context,string pwd)
{
List<UsermessModel> list = dal.GetLogin();
UsermessModel model = list.SingleOrDefault(i=>i.UserName==context||i.Email==context||i.TelPhone==context);
//使用LinQ表达式判断使用其中一个账号登录即可,这是我之前写的登录不同之处,其实感觉使用这个理解上更加容易
if (!model.Equals(null)) //输入的账号与读取的账号经过选择之后如果为空则不存在此用户名
{
if (!model.Pwd.Equals(null)) //输入的账号存在,而输入的密码与读取的密码经过选择之后如果为空则仍然返回一个false
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
public class UsermessDal
{
public List<UsermessModel> GetLogin()
{
string sql = "select * from Usermess";
SqlDataReader reader = SQLHelper.ExecuteReader(sql,CommandType.Text);
List<UsermessModel> list=new List<UsermessModel> (); //定义一个集合
while (reader.Read())
{
UsermessModel model = new UsermessModel(); //实例化对象,给读取的值赋值给model
model.Id = Guid.Parse(reader[].ToString());
model.UserName = reader[].ToString();
model.Email = reader[].ToString();
model.TelPhone = reader[].ToString();
model.Pwd = reader[].ToString();
list.Add(model);
}
return list;
}
}

上面是使用webform创建的一个登陆小程序的代码,其实这写的程序和之前还是有所差别的,首先说在获取用户名或者密码时间是使用的this.(id值).Value实现的,而之前学习的ashx是使用context.Request.Form["(name值)"]或者context.Request.QueryString["(name值)"]来获取的;还有就是我们这里在dal层写的方法有所不同,并没有通过数据库语句来判断,而是在bll层使用LinQ来判断,这就是这次写的登录小程序和之前不同之处,需要学习的地方。
                   另外想说的是Guid,我们需要注意转换的方法,如果想创建一个Guid变量,那么就需要使用Guid a=Guid.NewGuid()即可,而其他类型转换为Guid类型的值就如上dal层的转换方式。

我们来看一下运行时间的前台代码和之前我的前台页面的区别:

看一下上面的图我们知道使用控件时间还会生成一些ViewState,非常浪费资源,当然这只是其中的一点,另外就是好多的类都封装起来,使我们这些初学者入门容易,但是提高起来还是不知道从哪里开始的,控制不是很灵活,服务器控件控制起来不是很容易的,简单的我就知道这些吧,具体的我也可以说不是很懂···

好啦,今天就写到这里,很糟糕的事在我身上发生了,我写好这篇博客后没有及时保存,然后网页跳转就导致找不到写过后的博客,虽然使用了本地自动保存,但是仍然没有结果,很是失望哦,所以只得重新再来,终于写完了,要睡觉啦,嘿嘿。

WebForm的初步认识的更多相关文章

  1. ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期

    开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计.本篇,我们来看看WebForm模式下的页面生命周期. ( ...

  2. 初步认识ASP.NET WebForm

    C#可已进行以下两大类的开发 一.客户端应用程序C/S 主要有两种开发技术: 1.winForm windows窗体应用程序 2.WPF微软新一代图形框架 MFC(比较老的开发技术) MVVM(客户端 ...

  3. ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘

    开篇:经历了上一篇<aspx与服务器控件探秘>后,我们了解了aspx和服务器控件背后的故事.这篇我们开始走进WebForm状态保持的一大法宝—ViewState,对其刨根究底一下.然后,再 ...

  4. ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘

    开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...

  5. ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

    一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新 ...

  6. MVC与WebForm的区别

    在初步了解MVC后,发现很多人对于MVC和三层架构开发概念上会有很大的混淆,所以把这两天的学习笔记整理一下,分享给自己的同学们.同时也做一个小Demo,让没有接触过MVC开发的同学,能对MVC有一个简 ...

  7. ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步

    一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新 ...

  8. 解析ASP.NET WebForm和Mvc开发的区别

    因为以前主要是做WebFrom开发,对MVC开发并没有太深入的了解.自从来到创新工场的新团队后,用的技术都是自己以前没有接触过的,比如:MVC 和EF还有就是WCF,压力一直很大.在很多问题都是不清楚 ...

  9. ASP.Net WebForm学习笔记:一、aspx与服务器控件探秘

    作者:周旭龙 出处:http://edisonchou.cnblogs.com 开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便 ...

随机推荐

  1. 【转载】Exchange 2010配置与安装实用手册

    Exchange 2010配置与安装实用手册 在Exchange 2010配置的时候主要分三大部分,这分别是网络配置.准备存储以及相关的安装策略和过程.同时还需要注意和其他的Windows软件相协调. ...

  2. linux下压缩与打包工具——gzip, bzip2 和 tar;

    以下内容来自:阿铭http://www.apelearn.com/study_v2/chapter11.html, 把常用的写出来了:感觉可以了: 只管压缩与解压缩的工具: gzip 工具: 用的时候 ...

  3. python3两个字典的合并

    两个字典的合并其实很简单,直接用dict的update即可,代码如下: # /usr/bin/python3 # -*- encoding: utf-8 -*- ", "" ...

  4. WinForm控件学习笔记【第一天】——Control类

    感悟:明天就又是学校双选会的日子了.两年我都参与了学校的双选会的服务工作,现在该是双选会服务的我时候了.怎么样找到一份好的工作,或者说怎么样学习才能符合企业对人才的要求,我现在也是很迷茫.平时都是在看 ...

  5. R语言ggplot2中的panel. strip 基本概念

    ggplot2 是一套独立的绘图系统,在一个完整的ggplot2的图表中,会有下面几个概念: 1) plot 2) panel 3) strip 4) legend 所有这些元素都会出现在图表中 代码 ...

  6. 前端不容错过的jQuery图片滑块插件

    作为前端开发者,我们会碰到很到各种各样的jQuery插件,但老实说,很少有自己写的.今天要分享的几款jQuery图片滑块插件,也就是jQuery焦点图插件,基本上会在每个网站都有应用,可以下载看看,也 ...

  7. 关于Json-lib类库的使用

    前言介绍: json-lib包是一个Java类库,它可以将Java对象(包括:beans,maps,collections,java arrays ,xml等)和JSON互相转换. 与此相同的是谷歌也 ...

  8. 关于Struts2的文件上传

    要实现Struts2框架的文件上传,需要用到2个jar包 commons-fileupload-1.2.2.jar commons-io-2.0.1.jar 由于文件解析Struts2内部已经帮我们做 ...

  9. appium的xpath定位问题及常用方法

    关于类似的帖子好像很多,但是没有找到具体能帮我解决问题的办法.还是自己深究了好久才基本知道app上面的xpath定位和web上的不同点: 先放一个图: A,先说说不用xpath的场景,一般是用于存在i ...

  10. python05 - 迭代器,生成器,装饰器

    迭代器 迭代器就是访问集合元素的一种方式,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问一遍后结束. 迭代器很大的特点: 只能往前迭代,不能够回退,也不能随机访问其中一个元素,只能通过__ ...