01. MVC核心基础
1. Asp.Net MVC 简介
HttpHandler是asp.net的底层机制
asp.net mvc 的核心类仍然是HttpHandler接口的MvcHandler
2. Asp.Net MVC 起步
路由地址 --> 对应的控制器 --> 处理业务逻辑后数据传入Model --> 返回到View
3. Razor语法
@
4. 知识点补充和复习
cshtml 反编译
dynamic 动态
var 类型判断
匿名类型
var p = new { Age=26, Name="cc" }; 这个类是internal,属性是只读的,初始值是通过构造函数传递
5. Controller 给 View 传值
ViewData
ViewBag
Model
6. 关于 Action 的参数
asp.net mvc 会自动对参数做类型转换
对于boolean类型的参数(或者Model的属性),如果使用checkbox,则value必须是“true”,否则值永远是false。
对于double,int 等类型会自动进行类型转换。
1. 一个Controller 可以有多个方法,这些方法叫Action。通过“Controller名字/方法名” 访问的时候就会执行对用的方法。
2. Action 的三种类型的参数:
a. 普通参数:Index(string name, int age)
框架会自动把用户请求的QueryString或者Post表单中的值根据参数名字映射对应参数的值,适用于查询参数比较少的情况
b. Model 类
这种类叫ViewModel
c. FormCollection
采用 fc["name"] 这种方法访问,类似于HttpHandler 中用 ctx["name"]。适用于表单元素不确定、动态的情况
3. Action 的方法不能重载,所以如果一个Controller中不能同时存在这两个Action:
public ActionResultT1(string name);
public ActionResultT1(int age)
特殊情况:给Action方法上标注[HttpGet]、[HttpPost]
4. Action 参数可以一部分普通参数、一部分Model
5. Action 参数如果在请求中没有对应的值,则取默认值:数字是0、boolean 是false,引用类型是null。
6. 上传文件的参数用HttpPostedFileBase 类型,注意不是HttpPostFile 类型
7. View 的查找
1. return View() 会查找Views饿Controller 名字的Action 的名字的cshtml
2. return View("Action1"), 查找Views的Controller 名字下的 “Action1.cshtml”,如果找不到则到特殊的Shared 文件夹下找“Action1.cshtml”
3. return View("Action1", model),传递model
8. 其他类型的 ActionResult
1. View()
2. RedirectResult
3. ContentResult
4. 文件
1) FileContentResult File(byte[] fileContents, string contentType) 返回byte[] 格式的数据
2) FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName)
fileDownloadName设定浏览器弹出的保存建议的文件名
3) FileStreamResult File(Stream fileStream, string contentType) 返回Stream 类型的数据
4) FileStreamResult File(Stream fileStream, string contentType, string fileDownloadName)
5) FilePathResult File
6)
5. 404 HttpNotFoundResult HttpNotFound()
6. JavaScriptResult JavaScript(string script)
7. Json
默认禁止Get请求(主要为了防止CSRF攻击)
8. 重定向
1) Redirect(string url)
2) RedirectToAction(string actionName, string controllerName)
其实就帮助拼接生成url,最终还是调用Redirect()
3) RedirectToAction 和 Return View 的区别:
RedirectToAction 是让客户端重定向,是一个新的Http请求,所以无法读取ViewBag中的内容
Return View() 是一次服务器一次处理中的转移
9. 杂项 Misc
1. TempData
2. HttpContext 与 HttpConteBase、HttpRequest 与 HttpRequestBase

浙公网安备 33010602011771号