。 亲爱的开发家伙:)
我正在学习ASP.NET MVC3和我坚持,当我使用Response.WriteSubsitution()方法。
每次我尝试在页面中使用它,则取代的文字总是在页面顶部显示( 屏幕截图在这里 )。
考虑到我有我的控制器下面的代码:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
[OutputCache(Duration=20)]
public ActionResult About()
{
ViewBag.Date = DateTime.Now;
return View();
}
}
守则About.cshtml:
@using MvcApplication1;
@{
ViewBag.Title = "About Us";
}
<h2>About</h2>
<p>
Date : @ViewBag.Date<br />
Random Substitued number : @{ Response.WriteSubstitution(MvcApplication1.Helpers.Test); }
</p>
我的助手类:
namespace MvcApplication1
{
public static class Helpers
{
public static string Test(HttpContext context)
{
Random r = new Random();
return r.Next(0, 10).ToString(CultureInfo.InvariantCulture);
}
}
}
我错过了什么 ?
谢谢 !
编辑与解决方案:
我解决与@Darin季米特洛夫的解决方案的问题。
人们在我不变的情况下,这是我的新代码。
我的控制器:
[DonutOutputCache(Duration = 10)]
public ActionResult About()
{
ViewBag.Date = DateTime.Now;
return View();
}
public string RandomNumber()
{
Random r = new Random();
return r.Next(0, 10).ToString(CultureInfo.InvariantCulture);
}
MvcDonutCaching实现DonutOutputCacheAttribute我们不得不改用内置的OutputCacheOutput类。
我的看法 :
@using MvcApplication1;
@{
ViewBag.Title = "About Us";
Layout = "~/Views/Shared/Mobile/Layout.cshtml";
}
<h2>About</h2>
<p>
Date : @ViewBag.Date<br />
Random Substitued number : @Html.Action("RandomNumber", true)
@Side
</p>
该包装重载Html.Action的方法来控制所述高速缓存:)
感谢那些养活这个线程所有的人。