您的位置:首页 > 其它

MVC用filter的简单应用[转]

2012-07-27 16:38 169 查看


MVC用filter应用



Admin
2012年7月26日

MVC用filter做权限过滤:查看原文

1:创建filter类;类须要持续一个接口,并且重写4个办法;如下:

namespace MvcApplication1.Code
{
public class paramFilter:System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionuted(System.Web.Mvc.ActionutedContext filterContext)
{
base.OnActionuted(filterContext);
}

public override void OnActionuting(System.Web.Mvc.ActionutingContext filterContext)
{
if(filterContext.HttpContext.Request.QueryString["k"]=="go")
{
string retUrl = filterContext.RouteData.GetRequiredString("controller") + "/" + filterContext.RouteData.GetRequiredString("action");
filterContext.HttpContext.Response.Redirect("http://" + filterContext.HttpContext.Request.Url.Host + ":" + filterContext.HttpContext.Request.Url.Port.ToString() + "/" + retUrl);
}
}

public override void OnResultuted(System.Web.Mvc.ResultutedContext filterContext)
{
base.OnResultuted(filterContext);
}

public override void OnResultuting(System.Web.Mvc.ResultutingContext filterContext)
{
base.OnResultuting(filterContext);
}
}
}


重视:此中 filterContext对象是 从页面传过来的。

获取页面controller值的办法是 filterContext.RouteData.GetRequiredString("controller")
获取页面action值的办法是: filterContext.RouteData.GetRequiredString("action")
转到其他页面的办法是: filterContext.HttpContext.Response.Redirect()I
ip: filterContext.HttpContext.Request.Url.Host
端口:filterContext.HttpContext.Request.Url.Port.ToString()

2:在须要过滤的controller上加上一句代码即可:

[Code.paramFilter]
public ActionResult Index()
{

return View();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: