ASP.NET MVC OutputCache doesn't work for root URI

I'm learning ASP.NET MVC and bugged by one issue.

In the HomeController, the Index action has OutputCache attribute, but it seems doesn't work.

[HandleError]
public class HomeController : Controller
{
    [OutputCache(Duration=5, VaryByParam="none")]
    public ActionResult Index()
    {
        ViewData["Title"] = "Home Page" + DateTime.Now;
        ViewData["Message"] = "Welcome to ASP.NET MVC! " + DateTime.Now;

        return View();
    }
}

After quite a few minutes trying, I found that it is due to the way I access the action. If I access it through "http://localhost:3573/", the outputcache doesn't work. However, if I access it with "http://localhost:3575/Home/Index", the outputcache works.

Anybody know any workaround to make the default controller-action outputcacheable?

Thanks.

Answers


I think this is a bug in ASP.NET MVC. We have logged the issue in our database and will investigate a fix for this issue.

Thanks, Eilon


using VarByParam="" seems to make it work


According to my contacts at Microsoft, the issue disappears entirely if you remove the Default.aspx file from the root of your site, or, if you absolutely need to have it, make sure you use the one that's provided with the latest version of ASP.NET MVC.


Need Your Help

Passing a session variable with form in Scala/Play framework

scala playframework

The project i am working in allows logged in users to add a image to their profile by adding the image through a form. I was wondering if i could get the username automatically passed so the user d...

htmlagilitypack getting field-item

c# html-agility-pack

I have HTML that needs to be processed using htmlagilitypack in C#. Problem is I am not able to print it properly.