Я довольно новичок в использовании атрибута OutputCache
в ASP.NET MVC.
Статические страницы
Я включил его на статических страницах моего сайта с помощью следующего кода:
[OutputCache(Duration = 7200, VaryByParam = "None")]
public class HomeController : Controller
{
public ActionResult Index()
{
//...
Если я правильно понимаю, я сделал весь кэш контроллера за 7200 секунд (2 часа).
Динамические страницы
Однако как это работает с динамическими страницами? Под динамическим я подразумеваю, где пользователь должен отправить форму.
Например, у меня есть страница с формой электронной почты. Вот как выглядит этот код:
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? Кроме того, моя форма имеет капчу; это что-то изменит в уравнении?
Другими словами, как лучше всего подходить к кешированию с динамическими страницами?
Заранее спасибо.