什么是ASP中的Response.AddHeader(“Refresh”,“10”)的模拟。 NET MVC5

时间:2016-12-27 19:23:46

标签: asp.net-mvc-5 page-refresh

有人会告诉我ASP中是否存在类似Response.AddHeader("Refresh", "10")的内容。 NET MVC5,拜托?

我尝试了[OutputCache(NoStore = true, Location = OutputCacheLocation.Client, Duration = 10)],但它不起作用。

2 个答案:

答案 0 :(得分:2)

[OutputCache]用于缓存操作的输出。 Duration param只是告诉它缓存该输出多长时间。 任何都没有设置HTTP标头,当然也不会自动刷新页面。

Reponse.AddHeader在MVC5中仍然有效;你只需要确保你还没有开始响应。除非你做了一些不受欢迎的事情,否则这并不困难。例如,如果您要返回ViewResult,请先调用它:

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

如果您直接写入回复,请确保在开始之前添加标题。

答案 1 :(得分:1)

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

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://www.google.com/recaptcha/api/siteverify?");
curl_setopt($ch, CURLOPT_POST, 1);
$campos=array('secret'=>$secreto,'response'=>$TheResponse);
curl_setopt($ch, CURLOPT_POSTFIELDS,$campos);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ch_exec = curl_exec($ch);
$respuesta_google = json_decode($ch_exec,true);
var_dump($ch_exec);
var_dump($respuesta_google);
curl_close ($ch);

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

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());
    }
}