2012-06-28 6 views
6

。 親愛なる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メソッドをオーバーロード:)

おかげでこのスレッドを養うすべての人々。

答えて

4

私はASP.NET MVC3を学習しています。私はResponse.WriteSubsitution()メソッドを使用すると固執します。

このメソッドについては、ASP.NET MVC 3ではPhil Haack explainsとしてください。単にそれを使用しないでください。 ASP.NET MVC 3でドーナツキャッシュを実現したい場合、フレームワークにはありませんを提供しています。

自分自身をロールしたくない場合は、この機能を有効にできるthird party packagesがあります。

+0

お返事ありがとうございました! MvcDonutCachingパッケージが私の問題を解決しました。 – Xeryus