检查当前请求URL是否为控制器索引

时间:2016-03-23 09:21:21

标签: asp.net-mvc

有人知道一种检查当前请求其URL是否定位到控制器索引页的方法吗?

在我的应用程序中,我有大约30个控制器,每个控制器都有一个索引页我有一个ActionFilter,它在OnActionExecuting事件中为每个请求设置一个cookie。但是我希望仅在用户访问索引页面时才设置它。我知道以下所有网址都会返回索引;

任何人都知道检查这个的最好方法吗?

在有人询问之前,我使用的ActionFilter如下:

public class RefreshDetectFilter : IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var cookie = filterContext.HttpContext.Request.Cookies["RefreshFilter"];

        filterContext.RouteData.Values["IsRefreshed"] = cookie != null && cookie.Value == filterContext.HttpContext.Request.Url.ToString();
    }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        filterContext.HttpContext.Response.SetCookie(new HttpCookie("RefreshFilter", filterContext.HttpContext.Request.Url.ToString()));
    }
}

亲切的问候和提前谢谢, 的Yannick

1 个答案:

答案 0 :(得分:1)

您可以像这样获取当前的Action,无论是否包含操作名称的URL:

filterContext.RouteData.Values["action"]