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();
}
谁能告诉我 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();
}