WebForm的初步认识

                嘿嘿,这里就简单的总结一下初步学习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[0].ToString());
                model.UserName = reader[1].ToString();
                model.Email = reader[2].ToString();
                model.TelPhone = reader[3].ToString();
                model.Pwd = reader[4].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,非常浪费资源,当然这只是其中的一点,另外就是好多的类都封装起来,使我们这些初学者入门容易,但是提高起来还是不知道从哪里开始的,控制不是很灵活,服务器控件控制起来不是很容易的,简单的我就知道这些吧,具体的我也可以说不是很懂···

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

转载于:https://www.cnblogs.com/dyxd/p/4251686.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Webform项目是一个用于创建和管理在线表格和调查的开源项目。它是一个基于Drupal的模块,可以让用户通过简单易用的界面设计和修改各种类型的表单,包括联系表单、注册表格、调查问卷等。Webform项目的源码包含了各种功能模块和程序代码,用于实现表单的创建、保存、展示和提交等功能。 Webform项目的源码主要包括以下几个部分:表单设计和布局模块、数据存储和处理模块、用户界面和交互模块。其中,表单设计和布局模块包括了各种可视化编辑工具和模板,帮助用户设计出自己想要的表单样式和布局结构;数据存储和处理模块则负责将用户提交的表单数据保存到数据库中,并提供数据处理和分析的功能;用户界面和交互模块则是用于展示和交互用户提交的表单数据,包括表单预览、提交反馈等。 Webform项目的源码是基于PHP语言编写的,它使用了Drupal的框架和模块体系,因此在使用时需要依赖Drupal环境。用户可以通过下载Webform项目的源码,并将其部署到自己的Drupal系统中,然后根据自己的需要进行二次开发和定制。同时,Webform项目也提供了丰富的文档和社区支持,方便用户学习和使用。 总的来说,Webform项目的源码是一个功能丰富、易扩展的开源项目,它为用户提供了方便快捷的在线表单设计和管理解决方案,适用于各种类型的网站和应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值