ASP.NET Web程序设计笔记

一、ASP.NET Web 应用程序基础

1.Web应用程序简介

1.1.C/S体系结构

客户端/服务器  Client/Server

Linux 服务器
Windows
iMac

1.2.B/S体系结构

浏览器/服务器  Browser/Server

2.HTTP协议

2.1.URL

统一资源定位器{URL、URN}

应用层协议://主机IP地址或域名/资源所在路径/文件名

http://                     sport.163.com:        80/              xj/                          index.html

应用层协议             Web服务器域名      端口号        文件所在路径        文件名

2.2.HTTP协议概述

超文本传输协议

2.3.HTTP协议处理流程

浏览器发出一个HTTP请求,服务器能够返回一个响应,并且通过一个HTTP请求只能对应一个响应

2.3.1.客户端和Web服务器建立连接 C/S建立连接

2.3.2.客户端发送HTTP请求 C发请求

2.3.3.服务器接收客户端的请求,生成HTTP响应并发送给客户端 S接收请求,生成HTTP响应发给C

2.3.4.服务器关闭连接。客户端接收服务器的响应,恢复页面 S关闭连接

说明:服务器端关闭连接后,不再存储连接信息,所以HTTP协议被称为无状态协议

2.4.HTTP请求方式

2.4.1.GET请求方式

默认 不安全,暴露在地址栏,不能超过2KB

2.4.1.POST请求方式

以文件方式发送,慢,安全,数据量大

3.ASP.NET简介与Web Forms的创建

3.1.ASP.NET支持的3种开发模式

3.1.1.Web Pages

最简单的ASP.NET模型

内置了用于数据库、视频、社交媒体等的模板和帮助器

3.1.2.Web Forms

传统的ASP.NET事件驱动开发模型

添加了服务器控件、服务器事件以及服务器代码的网页

3.1.3.MVC

MVC编程模型是与传统的ASP.NET(Web Forms)相比更轻量级的替代方案

轻量级的可测试性的框架,同时整合了所有已有的ASP.NET特性,比如模板页。安全性和认证

3.2.创建Web Forms应用程序

新建——项目——C# 所有平台 Web——ASP.NET Web应用程序(.NET Framework)——确定——Web窗体

3.2.1.站点结构分析

.aspx是Web Forms窗体页面的后缀

App_Data文件夹是ASP.NET提供程序存储自身数据的默认位置

App_Start文件夹是应用程序静态配置文件

Content文件夹用于存放样式表等资源文件

fonts文件夹用于存放项目中需要使用到的字体

Scripts文件夹用于存放站点所用到的JavaScript脚本文件

3.2.2.页面文件结构分析

文件名.aspx    页面源文件

文件名.asp.cs    页面类文件

前端进后端 F7 右键——查看代码

后端进前端 Shift+F7

编译 ctrl+F5

设置起始页 右键——设置为起始页

<% @ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>

<%@......%>是ASP.NET页面指令

@Page表示当前是Page页面,即aspx页面

Language表示当前页面所使用的语言,此处为C#

AutoEventWireup指是否启用页面自动事件回传

CodeFile表示页面所对应的类文件,即Default.aspx.cs文件

Inherits表示页面所在类的类名

提醒:Page类提供.aspx文件的基本行为,Page的父类TemplateControl类定义了页面(或控件)的基本功能。TemplateControl类的父类Control类定义了ASP.NET服务器端元素(包括页面、控件)共享的属性、方法和事件。

二、验证控件

1.数据验证控件

1.1.数据验证的方式

后端代码验证 速度慢时间长

JavaScript验证

服务器验证控件

2.非空和比较验证控件

2.1.非空验证控件

RequiredFieldValidator 控件要求用户在页面上输入必填的内容

RequiredFieldValidator 控件常用属性
属性 说明
ControlToValidate 要验证的控件ID(所有验证控件都有该属性)
Text 验证出错时的提示(所有验证控件都有该属性,一般为*)
ErrorMessage 提交给汇总控件的错误信息(所有验证控件都有该属性)如果Text属性为空,则验证出错,将显示该信息

2.2.比较验证控件

CompareValidator控件用于执行数据类型检查,或比较一个值和另外一个值,以确定这两个值是否与比较运算符指定的关系相匹配

CompareValidator控件常用属性
属性 说明
ControlToValidate 要验证的控件ID(所有验证控件都有该属性)
ControlToCompare 用于与要验证的控件进行比较的控件的ID
Type 设置比较类型(如字符串,整型等)不同类型比较会出错
Operator 设置比较运算符,如等于(Equal)、大于等于(GreaterThanEqual)、小于等于(LessThanEqual)、大于(GreaterThan)、小于(LessThan)。默认设置为等于
ValueToCompare 用于比较的值

3.范围和正则表达式验证控件

3.1.范围验证控件

RangeValidator控件用于检查输入的值是否在确定的最小值和最大值之间

RangeValidator控件常用属性
属性 说明
ControlToValidate 要验证的控件ID(所有验证控件都有该属性)
MaximumValue 范围的上界(最大值)
MinimumValue 范围的下界(最小值)
Type 验证类型(字符串、整型、双精度、日期和货币5种)

3.2.正则表达式验证控件

ReqularExpressionValidator控件用于检查用户的输入是否与预定义的正则表达式相匹配

常见的正则表达式
非负数(正整数+0) ^\d+$
正整数 ^[0-9]*[1-9][0-9]*$
匹配中文字符的正则表达式 [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内) [^\x00-\xff]
货币(非负数·,要求小数点后有两位数字) \d+(\.\d=d)?
货币(正数或负数) (-)?\d+(\.\d=d)?

4.自定义验证控件

4.1.自定义验证控件

CustomValidator控件用于执行自定义验证

CustomValidator控件常用属性和事件
属性 说明
ControlToValidate 要验证的控件ID(所有验证控件都有该属性)
ClientValidationFunction 设置客户端验证的脚本函数
ServerValidate(事件) 服务器端验证的方法

4.2.错误汇总验证控件

ValidationSummary控件用于在页面上显示所有验证错误的摘要,他收集本页中所有验证控件的错误信息(ErrorMessage属性),进行组织并统一显示

ValidationSummary控件常用属性
属性 说明
ShowMessageBox 是否显示弹出的提示消息
ShowSummary 是否显示该报告内容

三、高级控件

1.母版页与内容页

1.1.母版页简介

以.master为后缀名的文件,可以实现页面统一布局

1.2.母版页的使用

添加——添加新项——Web窗体母版页

注意:在母版页中可以使用多个ContentPlaceHolder控件,但要确保至少用一个该控件

1.3.内容页

添加——添加新项——包含母版页的Web窗体

2.FileUpload文件上传控件

FileUpload控件的主要功能是向指定目录上传文件,该控件包含一个文本框和一个浏览按钮

不会自动上传文件,而必须设置相关的事件处理程序,在程序种实现文件上传。

FileUpload控件的主要属性和方法
属性 说明
HasFile 控件是否含有将要上传的文件
FileName 上传文件的文件名
SaveAs(函数) 将上传文件保存到服务器指定的路径

例:使用FileUpload控件控件上传图片文件到服务器,并且将上传的图片显示在页面上

<%@ Page Title="" Language="C#" MasterPageFile="~/dmy.Master" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="demo3.WebForm2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <h1>我是文件上传页</h1>
    <asp:FileUpload ID="FileUpload1" runat="server" />
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" />
    <asp:Image ID="Image1" runat="server" />
    <asp:Label ID="Label1" runat="server"></asp:Label>
</asp:Content>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace demo3
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //1.判断是否有文件
            if (FileUpload1.HasFile)
            {
                //2.判断文件后缀名
                string fileName = FileUpload1.FileName;
                //2.1.获取文件后缀名
                string filefex = fileName.Substring(fileName.IndexOf(".")).ToLower();
                //判断是否是图片
                string[] picType = { ".png", ".gif", ".jpg", ".jpeg",".png" };
                if (picType.ToList().IndexOf(filefex) != -1)
                {
                    //2.2.指定文件放置的路径
                    string url = Server.MapPath("~/pic/")+fileName;
                    //3.把文件保存到服务器上面
                    FileUpload1.SaveAs(url);
                    //显示文件
                    Image1.ImageUrl = "~/pic/"+FileUpload1.FileName;
                    Label1.Text = "文件上传成功";
                }
                else
                {
                    Response.Write("<script>javascript:alert('你上传的不是图片')</script>");
                }

            }
            else
            {
                Response.Write("<script>javascript:alert('你还未上传文件')</script>");
            }

        }
    }
}

注意:Server.MapPath("~/")获取的是服务器站点的根目录 

3.文件下载

3.1.超链接实现文件下载

<%@ Page Title="" Language="C#" MasterPageFile="~/dmy.Master" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="demo3.WebForm3" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <h1>文件下载</h1>
    <a href="/pic/图片.rar">点击下载</a>
    <a href="/pic/图片.jpeg" download="/pic/图片.jpeg">点击下载</a>
    
</asp:Content>

3.2.ASP.NET Response对象的TransmitFile()方法提供文件下载

<%@ Page Title="" Language="C#" MasterPageFile="~/dmy.Master" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="demo3.WebForm3" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <h1>文件下载</h1>
    
    <asp:Button ID="Button1" runat="server" Text="下载" OnClick="Button1_Click" />
</asp:Content>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace demo3
{
    public partial class WebForm3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.ContentType = "application/x-rar-compressed";//指定下载类型
            Response.AddHeader("Content-Disposition", "attachment;filename=图片.rar");//指定文件的下载名称
            string filename = Server.MapPath("~/pic/图片.rar");//指定下载路径
            Response.TransmitFile(filename);//根据下载路径传输文件
        }
    }
}

4.TreeView控件

4.1.站点地图

添加——新建项——web——常规——站点地图

以web.sitemap命名的文件,且需要存储于站点的根目录下。web.sitemap文件内容是以XML所描述的树状结构文件,其中包括了站点的结构信息。ASP.NET的导航控件的网站导航信息和超链接的数据均由web.sitemap文件提供

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="" title="后台管理页面"  description="">
		  <siteMapNode url="" title="登录"  description="" />
		  <siteMapNode url="" title="注册"  description="" />
  </siteMapNode>
</siteMap>

 节点描述:

siteMap:根节点,一个站点地图只能有一个siteMap元素

siteMapNode:对应于页面的节点,一个节点描述一个页面

title:页面描述

url:文件路径

description:说明性文本

注意:

站点地图根节点为<siteMap>元素,每个文件有且仅有一个根节点

<siteMap>下一级有且就有一个<siteMapNode>节点

在站点地图中,同一个url仅能出现一次

站点地图文件指定的页面关系是逻辑关系,而不是存储位置间的关系

4.2.TreeView控件的使用

TreeView控件由一个或多个节点构成,TreeView控件中的每一

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值