c#mvc3控制器具有整体if语句

时间:2012-03-06 08:36:29

标签: c# asp.net-mvc-3 if-statement

我是c#的新手,但我试图做的不是在每个actionresult中都有if语句。

我可以为控制器创建一个if语句,并为每个actionresult运行吗?

public InformationController {
if (Session["CharacterName"] == null)
{
 return RedirectToAction("logon", "Auth");
}

类似的东西?

4 个答案:

答案 0 :(得分:1)

我会通过为此实现IRouteConstraint来创建一个类,并使用它构建我的路由。

答案 1 :(得分:1)

像这样创建一个ActionFilterAttribute

public class MyFilterAttribute : ActionFilterAttribute
{
   public override void OnActionExecuting(ActionExecutingContext filterContext)
   {
        //your logic here
   }
}

并将此属性应用于您的控制器

[MyFilter]
public class MyController : Controller

答案 2 :(得分:1)

这看起来像Action Filter的主要候选人。像这样:

public class CheckSessionCharacterNameAttribute : FilterAttribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Session["CharacterName"] == null)
        {
            filterContext.Result = new RedirectToRouteResult(...);
        }
    }
}

答案 3 :(得分:0)

对于ASP.Net MVC框架,我更喜欢实现ActionFilterAttribute类....