一、Http(Hyper Text Transfer Protocol) 超文本传输协议
1.超文本?
图片、文件、视频 就叫超文本
2.现在通用的是1.1 版本 以前主要是1.0
2 协议(标准)
2.1 请求(Reqeust)
2.1.1请求的方式
Get、Post、Delete、Put、Head、Trace、Options
1)Get 查询用的
2)Post 新增用的
3)Delete 删除用的
4)Put 更新用的
总结:Get:通常用查询/删除 Post:新增/更新
2.1.2 请求都包含哪些内容呢?
2.1.2.1 请求行 请求头 空格 请求体
请求行: GET/Index.html HTTP/1.1 请求方式 URI Http 协议/版本
请求头:
作用: 1. 防盗链 2.防止别人恶意攻击
空行:
请求体:请求的内容
2.3 如何根据协议获取值呢?
1。获取请求体值得方式(表单)
方式一: Reqeust[“Key”]
方式二:Request.Params[“Key”]
方式三:Request.Form[“Key”]
2.获取请求头中的数据
1.Request.Headers[“Key”]
2.2 响应(Response)
2.2.1 响应: 响应行、响应头、空行、响应体
1. 下载 Content-Disposition:attachment;filename=1.jpg
下载的代码:
//context.Response.ContentType = “text/plain”;
//我们下载图片
//第一步:我要知道图片的路径?如何获取图片的路径?
string path = context.Server.MapPath("~/Images/Linux.png");
//Encode,解决下载中文乱码问题
string getString= HttpUtility.UrlEncode(“Linux操作系统.png”, System.Text.Encoding.UTF8);
context.Response.Headers.Add(“Content-Disposition”, “Attachment;filename=”+ getString);
string getPath= AppDomain.CurrentDomain.BaseDirectory;
想一个问题,怎们把硬盘的文件,读取到内存里 内存加载的都是字节
开辟一个内存空间,把硬盘里的文件,读取到内存数组
byte[] saveBytes = File.ReadAllBytes(path);
//Write 是写,从内存里去 取
context.Response.OutputStream.Write(saveBytes, 0, saveBytes.Length);
2. Cookie
3. Content-Type 告诉浏览器我响应的内容的格式及编码
二、在.Net Framework 下获取文件夹的路径的方式
1.在BS中获取文件夹的路径的方式是
Server.MapPath(“~/Images/Linux.png”) (Map 映射)
2.在应用程序中获取文件夹的路径的方式是(CS中最常用)?
AppDomain.CurrentDomain.BaseDirectory (获取应程序域的当前应用成的根目录)
三、MVC应用程序结构
App_Data(应用程序数据存放单机版数据库的地方)
1.Sql Server 数据库后缀名使啥?(.mdf(数据库文件)/ldf(日志数据库文件))
.mdf(Master DataBase File)
.ldf(Log DataBase File)
3.存放的就是单机版数据库的文件(不带服务的)
Access 数据库(单机版) .mdb
Sqlite 数据库(单机版) .db
4.如何访问App_Data 下的数据库文件
固定格式: |DataDirectory|test.db
App_Start(应用程序开始的地方)
1.通过Global.asax 去注册路由
2.是存放路由配置文件的地方
Controllers 的作用
1.使用默认的,不需要修改文件夹名称
2.控制器,实际上是一个类,继承了Controller
3.控制器有约定 名称+Controller
Content 的作用
1.存放css文件
Models 的作用(*)
1.存放模型
Views 的作用
1.视图,用于显示
2.文件夹名称跟控制器名称保持一致
3.控制器的文件名称,下包含的是控制器下的Action,也就是视图
4.Shared(共享文件夹)
5.布局视图(LayOut) 、分布视图(Partial)
6.布局页相当于以前的母版页 ,分布页就是一个个模块
7.布局页 用LayOut=布局页页的路径
8.分布页引入用Html.Partial(“名称”)
Global.asax 的作用
1.Web程序的入口 都从Application_Start 进入,有且只走一次
2.初始化数据用的
3.注册路由用的
Areas 的作用
1.为B/S站点进行模块划分
四、MVC 强类型控制器到视图之间的传值方式
方式一:View() 参数不能是字符串,其它都行 在页面中用(大)Model表示
Model(小) 是约束Model(大)的数据类型的
方式二:ViewBag.XXXXX XXXXX 任意起名,但是要见名知意
方式三:ViewData[“XXXX”] XXXX任意起名,但是要见名知意
五、ViewBag和ViewData的区别
1.ViewBag.XXX 而ViewData[“Key ”] 这种方式
2.ViewBag.XXX 视图页面中不需要类型转换,而ViewData[“Key”] 必须指定类型,并且类型声明要明确
简单总结希望对他人有帮助