您的位置:首页 > 编程语言 > ASP

asp.net mvc 过滤器:ArgumentNotNullFilter

2009-07-03 16:00 375 查看
http://bbs.51541.com.cn/showtopic-74.html

老是得判断参数是不是空,就弄了个判断参数不能为空的过滤器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
namespace GGG.Library.Filter
{
/// <summary>
/// 过虑器
/// 判断参数是否为空
/// created by lihui_830501@163.com 20090521
/// </summary>
public class ArgumentNotNullFilter : ActionFilterAttribute
{
private string[] _vars;
private string[] _errors;
/// <summary>
/// 构造
/// </summary>
/// <param name="vars">参数数组</param>
/// <param name="errors">错误信息数组 与参数数组对应</param>
public ArgumentNotNullFilter(string[] vars, string[] errors)
{
_vars = vars;
_errors=errors;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
for (int i = 0; i < _vars.Length; i++)
{
string value = filterContext.Controller.ValueProvider[_vars[i]].AttemptedValue;
if (string.IsNullOrEmpty(value))
{
filterContext.Controller.TempData["Error"] = _errors[i];
filterContext.HttpContext.Response.Redirect(filterContext.HttpContext.Request.UrlReferrer.ToString());
break;
}
}
}
}
}


使用:

[ArgumentNotNullFilter(new string[] {"name" }, new string[] { "被修改的栏目名称不能为空!"})]

        public ActionResult ModifyCategory(int id, string name)

在aspx里接收TempData["Error"]就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net mvc string class