zoukankan      html  css  js  c++  java
  • Asp.Net MVC part45 过滤器、模板页

    过滤器

    使用方式
    自定义类继承自相应的类或接口,重写方法,作为特性使用
    在控制器类中重写方法

    特性方式的使用
    注意:如果继承自接口需要让类实现FilterAttribute,才可以作为特性使用
    使用方式1:作为Controller或Action的特性
    使用方式2:在Global中注册为全局过滤器,应用于所有的Controller的Action
    参数类均继承自ControllerContext,主要包含属性请求上下文、路由数据、结果

    身份验证过滤器
    在约束的Action执行前执行
    重写OnAuthorization方法
    如果不想使用默认的身份验证方式,需要将base.***删除
    如果想进行跳转,需要设置上下文对象的Result属性为new RedirectResult(string url);

    异常处理过滤器
    当发生异常时,用于进行自定义异步处理,如记录日志、跳转页面
    使用自定义异常处理,需要在web.config中为system.web添加<customErrors mode="On" />节点
    重写OnException方法,不要禁用base.***
    如果想进行跳转,需要设置上下文对象的Result属性为new RedirectResult(string url);

    行为过滤器
    在行为被执行前、后执行的过滤器
    重写方法OnActionExecuting(行为执行前)
    重写方法OnActionExecuted(行为执行后)

    结果过滤器
    在结果被执行前、后执行的过滤器
    重写方法OnResultExecuting(结果执行前)
    重写方法OnActionExecuted(结果执行后)

    模板页
    模板页:在一个页面上进行布局,并留出空白区域供子页面填充
    在MVC项目中,Views文件夹下有一个Shared文件夹,用于存储所有的模板页面
    视图引擎,默认优先查找aspx引擎页面,如果不存在则查找razor引擎页面

    对于aspx引擎使用母版页Master
    新建母版页,使用ContentPlaceHolder可以空出来多个区域供子页面填充,设置ID属性以作区分
    为Action新建一个aspx引擎的页面,选择母版页并指定主填充区域的ID值
    在相应的Content标签中编写具体内容的代码,通过ContentPlaceHolderID属性标识出替换母版页中哪个区域

    对于Razor引擎,使用布局页.cshtml
    在Shared文件夹中新建mvc布局页
    使用@RenderBody()标识出空白区域
    新建Action的View,选择刚才创建的布局页,属性Layout指向了布局页的地址
    在页面中写一段代码,运行查看效果
    如果不指定Layout则会使用_ViewStart.cshtml指定的模板页面,这是所有页面调用的部分
    如果不想使用模板页面,设置Layout=“”即可
    可以使用RenderSection(string name, bool required)在布局页中抠出来更多的区域,在子页面中使用@section 名称{…}进行填充

  • 相关阅读:
    [LeetCode] 14. Longest Common Prefix 最长共同前缀
    [LeetCode] 16. 3Sum Closest 最近三数之和
    [LeetCode] 15. 3Sum 三数之和
    [LeetCode] 75. Sort Colors 颜色排序
    [LeetCode] 13. Roman to Integer 罗马数字转为整数
    [LeetCode] 12. Integer to Roman 整数转为罗马数字
    [LeetCode] 8. String to Integer (atoi) 字符串转为整数
    [LeetCode] 9. Palindrome Number 验证回文数字
    [LeetCode] 388. Longest Absolute File Path 最长的绝对文件路径
    [LeetCode] 138. Copy List with Random Pointer 拷贝带随机指针的链表
  • 原文地址:https://www.cnblogs.com/CSharpLover/p/6115561.html
Copyright © 2011-2022 走看看