[英]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.