c#mvc3控制器,具有一个整体if语句
本文关键字:if 语句 有一个 控制器 具有一 c#mvc3 | 更新日期: 2023-09-27 18:27:04
我是c#的新手,但我想做的是什么,而不是在每个actionresult中都有if语句。
我能为控制器提供一个完整的if语句,并为每个actionresult运行它吗?
public InformationController {
if (Session["CharacterName"] == null)
{
return RedirectToAction("logon", "Auth");
}
像那样的东西?
创建这样的ActionFilterAttribute
:
public class MyFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//your logic here
}
}
并将此属性应用于您的控制器
[MyFilter]
public class MyController : Controller
我会为此实现IRouteConstraint来创建一个类,并用它建立我的路由。
这看起来像是Action Filter的主要候选者。类似这样的东西:
public class CheckSessionCharacterNameAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Session["CharacterName"] == null)
{
filterContext.Result = new RedirectToRouteResult(...);
}
}
}
在ASP.Net MVC框架的情况下,我更喜欢实现ActionFilterAttribute类。。。。