Asp.net mvc 4 如何在mvc-4中防止操作执行一次返回某个内容

Asp.net mvc 4 如何在mvc-4中防止操作执行一次返回某个内容,asp.net-mvc-4,Asp.net Mvc 4,我创建了以下自定义过滤器,并将其作为数据注释附加到控制器。但是在动作执行时,如果返回了一些东西,那么它为什么要执行动作 class SessionExpireFilterAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { HttpContext ctx = HttpContext.Curr

我创建了以下自定义过滤器,并将其作为数据注释附加到控制器。但是在动作执行时,如果返回了一些东西,那么它为什么要执行动作

class SessionExpireFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext ctx = HttpContext.Current;
        // check if session is supported
        if (ctx.Session == null && ctx.Session["currOrder"] != null)
        {
            var result = new JsonResult();
            int[] data = { 1 };
            result.Data = data; /* json data */
            filterContext.Result = result;
            return;
            // return JavaScript("window.location = '" + Url.Action("Index", "Home") + "'");

            //@Url.Action("Search","Controller")

            //ctx.Response.Redirect("~/Home/Index");
        }

        base.OnActionExecuting(filterContext);
        return;
    }
}

[Authorize]
[SessionExpireFilterAttribute]
public ActionResult OrderDetails(int index)
{
    if (index == 1)
    {
        return PartialView("_OrderDetails");
    }
    else if (index == 2)
    {
        return RedirectToAction("GetUserDetails");
    }
}

首先,检查您的条件声明。我看不出你是怎么理解代码的

会话不能为Null,并且会话元素不能同时具有值。那应该是“或”吗


在ajax请求中,我想让它看起来像是sessionout,然后在onaction执行中返回一些json集,在客户端,我检查onsuccess函数的值为1,然后重定向到某个页面。
if (ctx.Session == null || ctx.Session["currOrder"] != null)