ASP 中 Response.AddHeader("Refresh", "10") 的模拟是什么?网络 MVC5

What is analog of Response.AddHeader("Refresh", "10") in ASP. NET MVC5

谁能告诉我 ASP 中是否有 Response.AddHeader("Refresh", "10") 的类似物。 NET MVC5,好吗?

我已经试过了[OutputCache(NoStore = true, Location = OutputCacheLocation.Client, Duration = 10)]但是还是不行。

[OutputCache] 用于缓存动作的输出。 Duration 参数仅告诉它缓存该输出多长时间。 与设置 HTTP headers 没有任何关系,当然也不会自动刷新页面。

Reponse.AddHeader在MVC5中仍然有效;你只需要确保你还没有开始响应。除非你正在做某事 off-the-wall,否则这并不困难。例如,如果您要返回一个 ViewResult,只需先调用它:

Response.AddHeader("Refresh", "10");
return View();

如果您直接写入响应,那么只需确保在开始之前添加 header。

您可以直接在您的控制器中使用它

public ActionResult MyAction()
{
    Response.AddHeader("Refresh", "10");
    return View();
}

或者您可以制作自定义操作过滤器

public class RefreshAttribute : ActionFilterAttribute, IActionFilter
{
    public string Duration { get; set; }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var duration = 10;

        Int32.TryParse(this.Duration, out duration);            

        filterContext.HttpContext.Response.AddHeader("Refresh", duration.ToString());
    }
}

用法

[Refresh(Duration = "10")]
public ActionResult MyAction()
{
    return View();
}