Cookie值已更新但返回旧值

时间:2015-11-03 05:27:02

标签: asp.net-mvc-4 cookies

我有一个任务来制作Custom BreadCrumbs,它将保留用户到达应用程序当前点的位置的历史信息。我为此目的创建了一个类,它继承自ActionFilterAttribute类并使用该类修饰控制器的操作,然后在我的OnActionExecuting覆盖中,我将历史视图保存在cookie中,并从我的customBreadCrumb局部视图中的cookie中获取信息。 此外,我的customBreadCrumb局部视图位于另一个partail视图中,而另一个partail视图又位于Layout页面中。 问题是每次代码执行时都会返回旧的cookie值。更具体地说,它返回当前视图中的先前值。 这是我的示例代码。

public class CustomBreadCrumb : ActionFilterAttribute
{

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        WriteCookie(string cValue);
        base.OnActionExecuting(filterContext);
    }


    private void WriteCookie(string CookieValue)
    {
        HttpCookie breadCrumbCookie = new HttpCookie("MyCookie");
        breadCrumbCookie.Value = CookieValue;
        breadCrumbCookie.Expires = DateTime.Now.AddYears(1);
        HttpContext.Current.Response.Cookies.Add(breadCrumbCookie);
    }

    public static string GetBreadCrumb()
    {

        if (HttpContext.Current.Request.Cookies["MyCookie"] != null)
        {
            return HttpContext.Current.Request.Cookies["MyCookie"].Value;
        }

        return string.Empty;
    }

}

这是我的观点

@{
    @CustomBreadCrumb.GetBreadCrumbs()
 }

这是我的样本控制器

public class HomeController : BaseController
{
    [CustomBreadCrumb]
    public ActionResult Index(int ID = 1)
    {
        //My logic
    }
 }

0 个答案:

没有答案