博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net mvc Controller 模式下的 aop
阅读量:6137 次
发布时间:2019-06-21

本文共 1858 字,大约阅读时间需要 6 分钟。

这个模式下的 aop 局限于 mvc 框架,因为它要继承 FilterAttribute, IActionFilter 。它两都在 system.web.mvc 命名空间下,所以仅支持在 Controller 中使用

首页定义一个特性类,并继承 FilterAttribute, IActionFilter

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace aspmvc_demo.Attributes{    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]    public class CommonMethodHoldAttribute : FilterAttribute, IActionFilter    {        public void OnActionExecuting(ActionExecutingContext filterContext)        {            string url = string.Format(@"\{0}\{1}", filterContext.RouteData.Values["controller"], filterContext.RouteData.Values["action"]);            filterContext.HttpContext.Response.Write(string.Format("{0} 执行前
", url)); } public void OnActionExecuted(ActionExecutedContext filterContext) { string url = string.Format(@"\{0}\{1}", filterContext.RouteData.Values["controller"], filterContext.RouteData.Values["action"]); filterContext.HttpContext.Response.Write(string.Format("{0} 执行后
", url)); } }} 然后就可以在 Controller 的中使用了,可以标记为类特性,也可以标记为方法的特性。我在这里标记为类的特性,就可以在这个类的所以方法执行前和执行后进行处理了
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using aspmvc_demo.Attributes;namespace aspmvc_demo.Controllers{    [HandleError]    [CommonMethodHold]    public class HomeController : Controller    {        public ActionResult Index()        {            ViewData["Message"] = "欢迎使用 ASP.NET MVC!";            this.Response.Write("Index 执行...
"); return View(); } public ActionResult About() { this.Response.Write("About 执行...
"); return View(); } }}

运行效果1:\home\index

运行效果2:\home\about

  

转载于:https://www.cnblogs.com/pophis/p/4349622.html

你可能感兴趣的文章
数学之美系列二十 -- 自然语言处理的教父 马库斯
查看>>
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
HDU 2818 (矢量并查集)
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>
Go语言学习(五)----- 数组
查看>>
Android源码学习之观察者模式应用
查看>>
416. Partition Equal Subset Sum
查看>>
Django之FBV与CBV
查看>>
Vue之项目搭建
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>
Data Wrangling文摘:Non-tidy-data
查看>>