MVC的总结

一、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”] 必须指定类型,并且类型声明要明确

简单总结希望对他人有帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值