Asp .Net MVC中常用过滤属性类

 1         /// <summary>
 2     ///
 3     /// </summary>
 4     public class AjaxOnlyAttribute : ActionFilterAttribute
 5     {
 6         /// <summary>
 7         /// Called by the ASP.NET MVC framework before the action method executes.
 8         /// </summary>
 9         /// <param name="filterContext">The filter context.</param>
10         public override void OnActionExecuting(ActionExecutingContext filterContext)
11         {
12             if (!filterContext.HttpContext.Request.IsAjaxRequest())
13             {
14                 filterContext.Result = new ContentResult() { Content = "只支持Ajax方法调用。", ContentEncoding = Encoding.UTF8, ContentType = "text/html" };
15                 //new HttpNotFoundResult();
16             }
17             base.OnActionExecuting(filterContext);
18         }

只允许通过Ajax调用

 1         /// <summary>
 2     /// 自定义模板页面
 3     /// </summary>
 4     public class LayoutAttribute : ActionFilterAttribute
 5     {
 6         private readonly string _masterName;
 7         public LayoutAttribute(string masterName)
 8         {
 9             _masterName = masterName;
10         }
11         /// <summary>
12         /// 页面渲染结束后执行
13         /// </summary>
14         /// <param name="filterContext"></param>
15         public override void OnActionExecuted(ActionExecutedContext filterContext)
16         {
17             base.OnActionExecuted(filterContext);
18             var result = filterContext.Result as ViewResult;
19             if (result != null)
20             {
21                 result.MasterName = _masterName;
22             }
23         }
24     }

设置公共母板页面

 1         /// <summary>
 2     /// 页面标题
 3     /// </summary>
 4     public class PageTitleAttribute : ActionFilterAttribute
 5     {
 6         private readonly string _pageTitle;
 7         public PageTitleAttribute(string pageTitle)
 8         {
 9             _pageTitle = pageTitle;
10         }
11         /// <summary>
12         /// 页面渲染结束后执行
13         /// </summary>
14         /// <param name="filterContext"></param>
15         public override void OnActionExecuted(ActionExecutedContext filterContext)
16         {
17             base.OnActionExecuted(filterContext);
18             var result = filterContext.Result as ViewResult;
19             if (result != null)
20             {
21                 result.ViewBag.Title = _pageTitle;
22             }
23         }
24     }

设置Action页面标题

 1     [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
 2     public class AuthorizeFilterAttribute : ActionFilterAttribute
 3     {
 4         // OnActionExecuted 在执行操作方法后由 ASP.NET MVC 框架调用。
 5         // OnActionExecuting 在执行操作方法之前由 ASP.NET MVC 框架调用。
 6         // OnResultExecuted 在执行操作结果后由 ASP.NET MVC 框架调用。
 7         // OnResultExecuting 在执行操作结果之前由 ASP.NET MVC 框架调用。
 8         public override void OnActionExecuting(ActionExecutingContext filterContext)
 9         {
10             //DoSomething();
11         }
12     }        

设置页面访问权限验证

时间: 2024-08-01 14:21:30

Asp .Net MVC中常用过滤属性类的相关文章

ASP.NET MVC中常用的ActionResult类型

常见的ActionResult 1.ViewResult 表示一个视图结果,它根据视图模板产生应答内容.对应得Controller方法为View. 2.PartialViewResult 表示一个部分视图结果,与ViewResult本质上一致,只是部分视图不支持母版,对应于ASP.NET,ViewResult相当于一个Page,而PartialViewResult 则相当于一个UserControl.它对应得Controller方法的PartialView. 3.RedirectResult 表

asp.net MVC中如何用Membership类和自定义的数据库进行登录验证

asp.net MVC 内置的membershipProvider可以实现用户登陆验证,但是它用的是自动创建的数据库,所以你想用本地数据库数据去验证,是通过不了的. 如果我们想用自己的数据库的话,可以写自己的membershipProvider!下面介绍如果创建自己的membershipProvider: 1.写自己的MembershipProvider类,这个类继承自命名空间System.Web.Security下的MembershipProvider类 这个类放在哪无所谓,这里我放在新建My

ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积01, 在控制台实现

在电商产品模块中必经的一个环节是:当选择某一个产品类别,动态生成该类别下的所有属性和属性项,这些属性项有些是以DropDownList的形式存在,有些是以CheckBoxList的形式存在.接着,把CheckBoxList的选中项组合生成产品SKU项. 本系列将在ASP.NET MVC中实现以上功能.但本篇,先在控制台实现属性值的笛卡尔乘积. 关于属性的类: public class Prop { public int Id { get; set; } public string Name {

ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积02, 在界面实现

在"ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积01, 在控制台实现"中,在控制台应用程序中实现了属性值的笛卡尔乘积.本篇在界面中实现.需要实现的大致如下: 在界面中勾选CheckBoxList中属性值选项: 把勾选的属性值进行笛卡尔乘积,每行需要填写价格: 我们暂且不考虑这些CheckBoxList是如何显示出来的(在后续有关商品模块的文章中会实现),还需考虑的方面包括: 1.从CheckBoxList中获取到什么再往控制器传? 对于每行的CheckBoxList来说

asp.net MVC中控制器获取表单form提交的数据之实体类数据

第一次写记录文章,难免有不足之处:欢迎指出. 1.新建一个mvc项目如: 2.新建一个Test.cs 注意get,set方法不能简写 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 using System; using System.Collections.Generic; using System.Linq; usi

Asp.net MVC中关于@Html标签Label、Editor使用

@Html帮助器简单说明,记录些基本的跟HTML中对应的@html帮助器,@Html基本包含了html中的表单控件和常用Html在@Html中,带有For的主要是针对强类型的Html类型.用于说明@Html中标签,定义Student对象用于辅助说明, [csharp] view plain copy public class Student { /// <summary> /// 姓名 /// </summary> /// [DisplayName("姓名")]

[转] ASP.NET MVC 中你必须知道的 13 个扩展点

ScottGu 在其 最新的博文 中推荐了 Simone Chiaretta 的文章 13 ASP.NET MVC extensibility points you have to know,该文章为我们简单介绍了  ASP.NET MVC  中的 13 个扩展点.Keyvan Nayyeri(与Simone合著了 Beginning ASP.NET MVC 1.0 一书)又陆续发表了一些文章,对这13个扩展点分别进行深入的讨论.我将在以后的随笔中对这些文章逐一进行翻译,希望能对大家有所帮助.

MVC中使用HTML Helper类扩展HTML控件

文章摘自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/1415005.html MVC在view页面,经常需要用到很多封装好的HTML控件,这篇文章主要讲述,怎么自己扩展和定制自己需要的控件. ---------------------------------------------------------- HTML Helper类是ASP.NET MVC框架中提供的生成HTML控件代码的类. 本质上与第一种方式一样, 只是我们可以

ASP.NET MVC教程五:ASP.NET MVC中的路由

一.概述 在ASP.NET MVC架构中,控制器在3大核心构件中处于中心地位,通过控制器支配模型和视图,然而从浏览器发出的请求到控制器还需要路由的协助,路由将特定的请求和控制器的动作对应起来. 在ASP.NET MVC程序中,路由主要有两方面的职责: 与入站的请求相匹配,将这些请求映射到控制器的动作中. 构造出站的URL,这些URL可以响应控制器的动作. 二.路由原理 1.注册路由 先看Global.asax中的代码: 网站启动的时候执行Application_Start方法,通过RouteCo