OutputCache
ASP.NET MVC でこの属性を使用するのは初めてです。
静的ページ
次のようなコードを使用して、サイトの静的ページで有効にしました。
[OutputCache(Duration = 7200, VaryByParam = "None")]
public class HomeController : Controller
{
public ActionResult Index()
{
//...
私の理解が正しければ、コントローラ全体を 7200 秒 (2 時間) キャッシュしました。
動的ページ
しかし、動的ページではどのように機能するのでしょうか? dynamicとは、ユーザーがフォームを送信する必要がある場所を意味します。
例として、メールフォームのあるページがあります。そのコードは次のようになります。
public class ContactController : Controller
{
//
// GET: /Contact/
public ActionResult Index()
{
return RedirectToAction("SubmitEmail");
}
public ActionResult SubmitEmail()
{
//In view for CAPTCHA: <%= Html.GenerateCaptcha() %>
return View();
}
[CaptchaValidator]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SubmitEmail(FormCollection formValues, bool captchaValid)
{
//Validate form fields, send email if everything's good...
if (isError)
{
return View();
}
else
{
return RedirectToAction("Index", "Home");
}
}
public void SendEmail(string title, string name, string email, string message)
{
//Send an email...
}
}
ここでコントローラー全体に OutputCache を適用するとどうなりますか?
HTTP POST フォームの送信は機能しますか? また、私のフォームには CAPTCHA があります。それは方程式の何かを変えるでしょうか?
言い換えれば、動的ページでキャッシュにアプローチする最良の方法は何ですか?
前もって感謝します。