簡體   English   中英

具有整體if陳述的c#mvc3控制器

[英]c# mvc3 controller having a overall if-statement

我是C#的新手,但是我想做些什么,而不是在每個操作結果中都包含if語句。

我可以為控制器提供一個整體的if語句,並為每個操作結果運行它嗎?

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

這樣的東西?

我將為此實現IRouteConstraint來創建一個類,並以此構建路由。

創建一個這樣的ActionFilterAttribute

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

並將此屬性應用於您的控制器

[MyFilter]
public class MyController : Controller

這看起來像是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類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM