Я изучаю ASP.NET MVC и столкнулся с одной проблемой.
В HomeController действие Index имеет атрибут OutputCache, но, похоже, не работает.
[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();
}
}
После нескольких минут попыток я обнаружил, что это связано с тем, как я получаю доступ к действию. Если я обращаюсь к нему через "http: // локальный: 3573 /", кэш вывода не работает. Однако, если я обращаюсь к нему с помощью «http: // localhost: 3575 / Home / Индекс», кэш вывода работает.
Кто-нибудь знает какое-либо обходное решение, чтобы сделать кэшируемый вывод действия контроллера по умолчанию?
Спасибо.
кто-нибудь из вас использует хром? я заметил некоторую странность в кешировании хрома





Я думаю, что это ошибка в ASP.NET MVC. Мы зарегистрировали проблему в нашей базе данных и исследуем решение этой проблемы.
Спасибо, Эйлон
Будете ли вы также исправлять ошибку, при которой установка VaryByParam на «None» будет выдавать заголовок HTTP-ответа «Vary: *», что должно быть противоположным тому, что должно произойти?
@Eilon Я все еще вижу в этом проблему, есть ли у вас какие-либо рекомендации по кешированию корневого uri? кроме перенаправления в / home;)
использование VarByParam = "" похоже, заставляет его работать
По словам моих контактов в Microsoft, проблема полностью исчезает, если вы удалите файл Default.aspx из корня вашего сайта или, если он вам абсолютно необходим, убедитесь, что вы используете тот, который предоставляется с последней версией ASP. .NET MVC.
Я вижу здесь ту же проблему.