После обновления приложения с ASP.NET MVC 1 до ASP.NET MVC 2 замена RC-кэша перестала работать.
Это мое действие:
[OutputCache(Duration = 30, VaryByParam = "none")]
public ActionResult CacheTest1()
{
return View("CacheTest");
}
Это заменители расширения:
public static object Substitute(this HtmlHelper html, MvcCacheCallback cb)
{
html.ViewContext.HttpContext.Response.WriteSubstitution(
c => cb(new HttpContextWrapper(c)));
return null;
}
И это мое мнение:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CacheTest</title>
</head>
<body>
<div>
Date: <%=DateTime.Now.ToString() %>
Substitute: <%=Html.Substitute(c => DateTime.Now.ToString()) %>
Response.WriteSubstitution: <% Response.WriteSubstitution(c => DateTime.Now.ToString()); %>
</div>
</body>
</html>
Страница кэшируется в течение минуты, и подстановка не работает, она просто показывает время, когда страница была изначально отрисована. Это работало в ASP.NET MVC 1.0 !!
Есть идеи?
Спасибо