ASP.NET MVC 5 笔记
1. MVC 的常用特性
1) System.Web.Mvc.ActionNameAttribute
Ø 该特性用于将当前 Action 名称,改为一个指定的 Action 名称,路由匹配时将匹配指定的 Action 名称,并匹配对应的视图名称。
Ø 在 Action 头部标记该特性,例如:[ActionName("NewTwo")]
2) System.Web.Mvc.NonActionAttribute
Ø 该特性用于指示当前 Action 不是一个 Action 操作方法,尽管是一个正常的 Action 操作方法,路由也不能正常匹配。
Ø 在 Action 头部标记该特性,例如:[NonAction]
3) System.Web.Mvc.AllowHtmlAttribute
1. 该特性用于指示当前属性(只能是属性)可以跳过请求验证,允许请求在模型绑定过程中包含 HTML 标记。(强烈建议应用程序显式检查所有禁用请求验证的模型,以防止脚本攻击。)
2. 未使用 AllowHtml 特性提交元素值包含 HTML 标签时,将报如下错误:
3. 使用 AllowHtml 在属性头部标记该特性,例如:[AllowHtml],这样就可以提交包含 HTML 标记的元素了。
4) System.Web.Mvc.SessionStateAttribute
1. 在 Controller 头部标记该特性,例如:[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
2. 该特性用于指定控制器的会话状态,可选值:
1) Default:使用默认 ASP.NET 逻辑来确定请求的会话状态行为。 默认逻辑是寻找 System.Web.IHttpHandler 中是否存在标记会话状态接口。
2) Required:为请求启用完全的读写会话状态行为。 此设置将覆盖已通过检查请求的处理程序确定的任何会话行为。
3) ReadOnly:为请求启用只读会话状态。 这意味着会话状态无法更新。此设置将覆盖已通过检查请求的处理程序确定的任何会话状态行为。
4) Disabled:未启用会话状态来处理请求。 此设置将覆盖已通过检查请求的处理程序确定的任何会话行为。
5) System.Web.Mvc.HttpGetAttribute
Ø 该特性用于限制操作方法,以便该方法仅处理 HTTP GET 请求。
6) System.Web.Mvc.HttpPostAttribute
Ø 该特性用于限制操作方法,以便该方法仅处理 HTTP POST 请求。
7) System.Web.Mvc.HttpDeleteAttribute
Ø 该特性用于限制操作方法,以便该方法仅处理 HTTP DELETE 请求。
8) System.Web.Mvc.HttpPutAttribute
Ø 该特性用于限制操作方法,以便该方法仅处理 HTTP PUT 请求。
9) System.Web.Mvc.HttpPatchAttribute
Ø 该特性用于限制操作方法,使得该方法仅处理 HTTP PATCH 请求。
10) System.Web.Mvc.HttpOptionsAttribute
Ø 该特性用于限制操作方法,使得该方法仅处理 HTTP OPTIONS 请求。
11) System.Web.Mvc.HttpHeadAttribute
Ø 该特性用于指定 HTTP 请求必须为 HTTP HEAD 方法。
12) System.Web.Mvc.ValidateAntiForgeryTokenAttribute
Ø 该特性用于阻止伪造请求的特性。
2. 在 MVC 中访问静态文件
Ø MVC 默认情况下会将所有请求文件和路径,交给System.Web.HttpNotFoundHandle去处理,以便 Controller 统一控制。例如 View 文件夹加下的 Web.config 配置文件:
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
Ø 需要访问静态文件,需要在 handlers 节点下添加一个节点,例如:
<add name="StaticFileHandler" verb="GET,HEAD" path="*.html" type="System.Web.StaticFileHandler"/>
或者
<add name="StaticFileHandler" path="*" verb="*" type="System.Web.StaticFileHandler"/>
Ø 这样就可以以绝对路径的方式访问静态文件了。
3. MVC
ASP.NET MVC 5 笔记的更多相关文章
- ASP.NET MVC学习笔记-----Filter2
ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...
- ASP.NET MVC学习笔记-----Filter
ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...
- ASP.NET MVC学习笔记-----Filter(2)
接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public ...
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
- 【MVC5】ASP.NET MVC 项目笔记汇总
ASP.NET MVC 5 + EntityFramework 6 + MySql 先写下列表,之后慢慢补上~ 对MySql数据库使用EntityFramework 使用域用户登录+记住我 画面多按钮 ...
- 【转】ASP.NET MVC学习笔记-Controller的ActionResult
1. 返回ViewResult public ActionResult Index() { ViewData["Message"] = "Welcome ...
- ASP.NET MVC学习笔记-----使用自定义的View Engine
我们都知道在ASP.NET MVC中自带了Razor View Engine,Razor十分的强大,可以满足我们绝大部分的需要.但是ASP.NET MVC的高度可扩展性,使我们可以使用自定义的View ...
- ASP.NET MVC学习笔记-----ActionInvoker
还是这张图: 当ControllerFactory生成Controller实例后,这时就需要使用ActionInvoker来选择调用一个合适的Action执行.ASP.NET MVC提供的基类Cont ...
- ASP.NET MVC 学习笔记(1)
从头开始系统地学习ASP.NET MVC 为什么要学习ASP.NET MVC?原因很多,可以先来看一下最早的ASP.NET WebForm的一些缺点: 传说中面试经常要问到的ASP.NET WebFo ...
随机推荐
- mybatis 二级缓存
Mybatis读取缓存次序: 先从二级缓存中获取数据,如果有直接获取,如果没有进行下一步: 从一级缓存中取数据,有直接获取,如果没有进行下一步: 到数据库中进行查询,并保存到一级缓存中: 当sqlSe ...
- BZOJ 4562: [Haoi2016]食物链(拓扑排序)
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=4562 一句话题意:给一个DAG,求有多少条不完全相同的链,使链首入度为0,链尾出度为0. ...
- QML学习笔记(六)- 简单计时器和定时器
做一个简单的qml计时器和定时器,左键触发计时,右键触发定时 GitHub:八至 作者:狐狸家的鱼 本文链接:QML学习笔记(六)- 简单计时器和定时器 左键点击按钮,触发计时器,中键可以暂停计时,同 ...
- 组件之间的数据传递--Vuex
安装Vuex: npm install Vuex -S 在main.js中引入 import Vue from 'vue' import App from './App' import Vuex fr ...
- HEOI2013 Segment
传说中的“李超树”. 大意:给你若干线段,试求横坐标x上的最上方一条线段的编号.无则输出零. 解:用线段树维护. 插入的时候保存自己这个区间上可能成为最大值的线段,被抛弃的则看情况下放. 查询时从最底 ...
- 区间最深LCA
求编号在区间[l, r]之间的两两lca的深度最大值. 例题. 解:口胡几种做法.前两种基于莫队,第三种是启发式合并 + 扫描线,第四种是lct + 线段树. ①: 有个结论就是这个答案一定是点集中D ...
- A1117. Eddington Number
British astronomer Eddington liked to ride a bike. It is said that in order to show off his skill, h ...
- 如何在疲劳的JS世界中持续学习
作者简介 cnfi 蚂蚁金服·数据体验技术团队 本文翻译自<Stay updated in JS fatigue universe>,并对内容有所补充和修改. 部分内容参考<HOW ...
- TestNg 3.忽略测试
有些测试本身不想执行,但是删掉显得不合理,需要忽略这个测试用例 package com.course.testng; import org.testng.annotations.Test; publi ...
- C 线程学习记录
"互斥锁"(Mutual exclusion,缩写 Mutex),防止多个线程同时读写某一块内存区域. 这时的解决方法,就是在门口挂n把钥匙.进去的人就取一把钥匙,出来时再把钥匙挂 ...