。 親愛なるDev Guys :)MVC3 Razor - Response.WriteSubstitutionは、常にページの私のテキストのオンタップを表示します
私はASP.NET MVC3を学習しています。私はResponse.WriteSubsitution()メソッドを使用すると固執しています。
ページで使用しようとするたびに、置き換えられたテキストが常にページの上に表示されます(screenshot here)。 About.cshtmlで
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();
}
}
コード:
@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);
}
}
}
は、私が何かを見逃していましたか?
ありがとうございます!溶液で
EDIT:
私は@Darinディミトロフのソリューションで問題を解決します。
私の場合と同じ場合、これは私の新しいコードです。
マイコントローラ:私たちが代わりにビルドでOutputCacheOutputを使用する必要がDonutOutputCacheAttribute
[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は、クラスを実装します。
マイビュー:
@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メソッドをオーバーロード:)
おかげでこのスレッドを養うすべての人々。
お返事ありがとうございました! MvcDonutCachingパッケージが私の問題を解決しました。 – Xeryus