2:Controller 的 Action 中的 Return View()是寻找当前Action的对应页面。
例如 public ActionResult Index(){Return View();}则会寻找Index.aspx页面
3:Controller的 Action 中 跳转 使用 return RedirectToAction("Action", "Controller", this.RouteData);
返回类型为 RedirectToRouteResult
4:Html.ListBox 生成的 Select 允许选择多行 Html.DropDownList 生成的 Select 则不允许.
5:Html.Partial 起到页面引入作用 需要编译的 <%:Html.Partial%>
Html.RenderPartial 也起到引入 但类似于 Respose.Write 直接删除。
6:Action的属性 ActionName属性可以在页面中代替被调用的 Action函数名称。
7:ViewEngin是呈现引擎。默认的未 WebFormViewEngine .
其他引擎有 Spark (支持类似Master Page的技术)
8:IViewEngine接口 与IView 来实现引擎重载
IViewEngin接口中 FindPartailView 未全局查找
IView接口属性
HttpContext,
Controller,//调用Controller实例
RouteData,//来源徐路由
ViewData,//页面数据字典
TempData,临时数据 Session中存储 仅1次失效
View,
ClientValidationEnabled,//判断客户端是否做数据验证
FormContext,//包含客户端Form的信息
FormIdGenerator,//判定Form的信息
IsChildAction,//如果True调用PartailView 否则使用View.
ParentActionContext,
Write //输出信息
9:Url 的规律性强 有利于SEO,帮助搜索引擎爬虫抓取
MVC会体现网站Url的逻辑路径而不是实际物理路径
Url的全名称意思为:【统一】【资源】【路径】
10:Routing与URLRewriting技术的比较
URLRewriting是重写 但是请求 还是要用URL实际路径(障眼法)只能编译重写的RUL
Routing 不需要执行重写 可生成URL
11:新设置的路由规则匹配顺序应该 由小到大 由窄道宽
12:所有的路由都由RouteCollection管理。
13:较大工程可以使用Area来分成若干模块的小站。
14:routes.MapRoute("Defaults","query/{query-name}/{*extrastuff}") 来匹配任意多参数
Routes.add(new Route({resource}.axd/{*pathinfo},New StopRoutingHandler()) 是停止匹配 直接是物理路径
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
忽略匹配 直接匹配物理路径 且 开销少于停止匹配
15:Route是RouteValueDictionary的一个对象。
16:Route的扩展
public classRestRoute:RouteBase
{
//匹配上下文照实例
public override RouteData GetRouteData(HttpContextBase httpcontext){}
//匹配路径
public override VirtualPathData GetVirtualPath(){}
}
17:ControllerActionInvoker 来负责 Action Controller与Route之间的沟通
18:Rest架构 [HttpPost] //创建 [HttpPut] //更新 [HttpGet] //读取 [HttpDelete] //删除
19:MVC参数来源 {1} Request Form Collecation {2} Route Data {3} Request QueryString Collecation
20:同步和异步比较:
同步:{1}操作短小迅捷 {2} 要求高可测试性 {3} 要求高CPU而不是高IO
异步:{1}通过测试发现该操作时网站应用性能瓶颈{2}对并行性由高要求 {3} 高IO > 高CPU
同步Action:{1} 继承 Controller {2}开始结束以一个函数完成
异步Action:{1}继承 AsyncController {2}开始一个函数以 Asyn结尾 完成调用一个函数 以Completed结尾
21:对于异步调用 加[AsyncTimeout(100)]访问执行100秒报超时异常
22:Filter是作用是对Action做附加说明
[Authorzie] 登陆权限验证授权
Role="角色1,角色2" Users="用户1,用户2" 两种规则可以叠加
[HandleError] 错误处理
[HandleError(ExceptionType=typeof(ArgumentNullException),View="View",Order=1)]
[HandleError(ExceptionType=typeof(Exception),Order=2)]
View="错误跳转页面";Order=?负责异常捕捉的顺序 从小到大 min >> max
[OutputCache] 缓存
在Webconfig中定义一个OutputCache规则 之后可通过 OutputCache(CacheProfile="规则名")来调用
[RequeireHttps] - [一定要使用HTTPS来传输的]
[Https]-[网络加密] [SSL]-[加密协议]
23:Filter 的基础接口:(fx用)IAuthorizationFilter , (fx用)IExceptionFilter , IActionFilter ,IResultFilter
时间接口类的命名规则是 New+Attribute = NewAttribute 使用的时候是 [New]
24:Filter的执行顺序
1:Order小的先执行 > 同样Order根据定义范围 例如 Controller先Action执行
2:没有Order的最后执行
3:代码内部定义的Filter最先执行
4:同类型Filter无顺序规定
25:适合使用AJAX的页面
1:大容量页面 较小部分局部改变
AJAX的优势{1} 减少数据传输,提高用户响应时间 {2} 较少服务器负担 {3} 操作异步 不影响其他操作
AJAX的缺点{1} 异步请求不保存请求与状态<回退按钮> {2}用户没有JavaScript脚本支持(禁用脚本) {3} AJAX被乱用
26:AJAX的使用标准
1:每个AJAX请求都需要一个制定的ACTION
2:ACTION可以判断是否来自AJAX
3:针对AJAX请求返回一个特殊的View
27:MVC AJAX 需要的类库文件MicrosoftAjax.js MicrosoftMvcAjax.js
28:String isAjaxPost = Request.Form["X-Requested-With"]??Request.Headers["X-Requested-With"];
来获取是否是Ajax请求 如果不是空 则是 AJAX 则返回AJAX结果
Ajax使用PartialView返回
29:
浙公网安备 33010602011771号