Asp.net mvc 4 当其他操作调用该操作时,outputcache不工作

Asp.net mvc 4 当其他操作调用该操作时,outputcache不工作,asp.net-mvc-4,outputcache,Asp.net Mvc 4,Outputcache,ASP.NETMVC4 守则: [OutputCache(Duration = int.MaxValue, VaryByParam = "id")] public ActionResult Index(int id = 0) { return Content(DateTime.Now.ToString()); } 上面的代码运行良好。但守则: public ActionResult Index(int id = 0) {

ASP.NETMVC4

守则:

    [OutputCache(Duration = int.MaxValue, VaryByParam = "id")]
    public ActionResult Index(int id = 0)
    {
        return Content(DateTime.Now.ToString());
    }
上面的代码运行良好。但守则:

    public ActionResult Index(int id = 0)
    {
        ActionResult result = Test(id);

        return result;
    }

    [OutputCache(Duration = int.MaxValue, VaryByParam = "id")]
    ActionResult Test(int id)
    {
        return Content(DateTime.Now.ToString());
    }
这不管用

我也试着这样做:

    public ActionResult Index(int id = 0)
    {
        return Test(id);
    }
它也不是每次请求都输出相同的值

您应该使用

return RedirectToAction("Index", "Home", new { id = 1 });
像这样


但是,当请求来自android或iphone等应用程序时,我该怎么办?这种方法不会得到正确的结果,因为这不是Response.write()方法,而是将响应头位置值设置为hostname/home/test/id!顺便说一下,我用的是ApiController!
public ActionResult Index(int id = 0)
    {
         return RedirectToAction("Test", "Home", new { id = 1 });
    }

    [OutputCache(Duration = int.MaxValue, VaryByParam = "id")]
    ActionResult Test(int id)
    {
        return Content(DateTime.Now.ToString());
    }