如何在ASP.NET MVC为Action定义筛选器
2015-07-02 23:05
609 查看
在ASP.NET MVC中,经常会用到[Required]等特性,在MVC中,同样可以为Action自定义筛选器,来描述控制器所遵守的规则。
首先,我们在ASP.NET MVC项目中定义一个TestController,控制器中包含两个Action动作方法,代码如下:
从代码中可以看出,两个动作方法均返回字符串,不同之处是后者应用了自定义的InputID筛选器。
然后,自定义筛选器Input,筛选器同样为C#类,其继承自ActionFilterAttribute类,实现IActionFilter接口。
在自定义的筛选器中,重写基类中的OnActionExecuting虚方法,该方法会在执行Action方法之前由ASP.NET MVC框架调用,该方法说明如下:
View Code
Input筛选器代码如下:
依据代码,判断查询字符串中key为id的值,如果为空,将跳转到test控制器中的FirstPage方法。否则直接返回。
自定义筛选器完成,实验,在浏览器中输入不同的URL,如图:
综上,通过自定义筛选器,并定义OnActionExecuting方法,该方法在动作方法之前执行,最终产生不同的执行结果。
首先,我们在ASP.NET MVC项目中定义一个TestController,控制器中包含两个Action动作方法,代码如下:
public class TestController : Controller { public string FirstPage() { return "请输入ID"; } // // GET: /Test/ [InputID] public string Index(int id) { return "已经输入了ID"; } }
从代码中可以看出,两个动作方法均返回字符串,不同之处是后者应用了自定义的InputID筛选器。
然后,自定义筛选器Input,筛选器同样为C#类,其继承自ActionFilterAttribute类,实现IActionFilter接口。
在自定义的筛选器中,重写基类中的OnActionExecuting虚方法,该方法会在执行Action方法之前由ASP.NET MVC框架调用,该方法说明如下:
// // 摘要: // 在执行操作方法之前由 ASP.NET MVC 框架调用。 // // 参数: // filterContext: // 筛选器上下文。 public virtual void OnActionExecuting(ActionExecutingContext filterContext);
View Code
Input筛选器代码如下:
public class InputID : ActionFilterAttribute, IActionFilter { public override void OnActionExecuting(ActionExecutingContext filterContext) { if(String.IsNullOrEmpty(filterContext.HttpContext.Request.QueryString["id"])) { filterContext.Result = new RedirectResult("/test/FirstPage"); return; } else { return; } } }
依据代码,判断查询字符串中key为id的值,如果为空,将跳转到test控制器中的FirstPage方法。否则直接返回。
自定义筛选器完成,实验,在浏览器中输入不同的URL,如图:
综上,通过自定义筛选器,并定义OnActionExecuting方法,该方法在动作方法之前执行,最终产生不同的执行结果。
相关文章推荐
- Asp.net 页面访问模板页的属性
- ASP 500错误解决方法
- Asp.net MVC 2 中解决页面提交数据并发问题
- asp.net 并发处理
- 初探Asp.net请求机制原理 1
- asp .net 获取当前url各种属性
- Web Form 与 Asp.net MVC架构、开发之异同
- Asp.Net远程调试
- 在 ASP.NET MVC4 中使用 NInject
- ASP.NET中JSON的序列化和反序列化
- ASP.NET中JSON的序列化和反序列化
- DevExpress asp.net 导出Excel 自动开启迅雷问题,默认保存为aspx页面
- ASP.NET MVC程序播放H.264视频
- asp.net读取xml
- DEV-aspxgridview_RowValidating行验证
- ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
- ASP.NET MVC 基础入门
- ASP动态抓取<党史上的今天>
- Asp.net 头像的简单实现
- asp.net 学习之路之gridView控件(续)