方法就是使用:ActionFilterAttribute
它的几个方法:OnActionExecuted,OnActionExecuting,OnResultExecuted和OnResultExecuting,它们记录一个action从加载到页面最终显示在浏览器的全过程,这个东西一般用在页面权限验证,LayOut页面控制上
这里面的几个方法执行顺序:OnActionExecuting action执行前
OnActionExecuted action执行后
OnResultExecuting 页面渲染后
OnResultExecuted 页面渲染结果

可以通过ActionFilterAttribute的特性,写个派生类,然后去覆盖OnActionExecuted
将layout页面修改(注意是修改,因为在action执行后layout已经是默认的布局页了)

 /// <summary>
/// 自定义模板页面
/// </summary>
public class LayoutAttribute : ActionFilterAttribute
{
private readonly string _masterName;
public LayoutAttribute(string masterName)
{
_masterName = masterName;
}
/// <summary>
/// 页面渲染结束后执行
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var result = filterContext.Result as ViewResult;
if (result != null)
{
result.MasterName = _masterName;
}
}
}

最后把它应用到controller或者action上,使用很简单

 [Filters.Layout("_LayoutEd")]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; return View();
}
[Filters.Layout("_LayoutEd")]
public ActionResult About()
{
ViewBag.Message = "Your app description page."; return View();
} public ActionResult Contact()
{
ViewBag.Message = "Your contact page."; return View();
}
}

最新文章

  1. 常用的CSS Hack
  2. typecho除了首页其他大部分网页404怎么办?
  3. Firefox扩展开发
  4. petri网学习心得
  5. Bitnami Redmine安装和插件配置
  6. @Transactional
  7. C# Post方式传输报文,和处理响应
  8. C++ 之旅:前言
  9. 那些年一起踩过的坑 — Date类型序列化的问题
  10. 第33条:用EnumMap代替序数索引
  11. Mac OS X下HomeBrew安装卸载
  12. 【mac osx安装opencv,python总结】
  13. linux下自动同步internet时间
  14. 巧妙利用ToArray()函数移除集合中的元素
  15. 在 Android 中调用二进制可执行程序(native executable )
  16. jzoj6099. 【GDOI2019模拟2019.4.1】Dist
  17. Entity Framework入门教程(3)---EF中的上下文简介
  18. Oracle性能优化之查询语句通用原则
  19. Java 多线程 同步和异步
  20. (大数 万进制) N! hdu1042

热门文章

  1. Cookie的Domain
  2. FZU 2092 收集水晶 dp+bfs
  3. oracle中查看某个用户名下所有的表以及sequence
  4. 洛谷P1189 逃跑的拉尔夫(SEARCH)
  5. cloud-utils cloud-utils-growpart cloud-init
  6. HDU5366 The mook jong (DP)
  7. VisualBox会造成VPN连接不上问题
  8. oracle命令行操作
  9. 1514:数值的整数次方 @jobdu
  10. Shiro 源码分析