我正在使用此代码来确定我的页面是否已刷新,但它总是返回为 true
public class RefreshDetectFilter : ActionFilterAttribute, IActionFilter
{
//void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var cookie = filterContext.HttpContext.Request.Cookies["RefreshFilter"];
filterContext.RouteData.Values["IsRefreshed"] = cookie != null &&
cookie.Value == filterContext.HttpContext.Request.Url.ToString();
}
//void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.HttpContext.Response.SetCookie(new HttpCookie("RefreshFilter", filterContext.HttpContext.Request.Url.ToString()));
}
}
在我的控制器中,我有属性和检查
[RefreshDetectFilter]
public class UserController : Controller
在动作方法中
if (Convert.ToBoolean(RouteData.Values["IsRefreshed"]) == true)
{
// page has been refreshed.
}