Как и другие ответы заявили, пончик кэширование «своего рода» работает в MVC.
я бы не рекомендовал его - вместо того, чтобы я буду предлагать alterantive:
у Вас есть представление для пользователей профиля, давайте назовем это «UserProfile.aspx».
Теперь в этом представлении у вас есть куча HTML, в том числе раздел для «недавних сообщений».
Теперь, я предполагаю, что это что-то вроде последние 10 сообщений для пользователя.
Что я бы сделать, это положить этот HTML/раздел в Частичный вид, и служить ему с помощью метода отдельной акции, иначе в PartialViewResult:
public class UserProfileController
{
[HttpGet]
[OutputCache (Duration=60)]
public ActionResult Index() // core user details
{
var userProfileModel = somewhere.GetSomething();
return View(userProfileModel);
}
[HttpGet]
public PartialViewResult DisplayRecentPosts(User user)
{
var recentPosts = somewhere.GetRecentPosts(user);
return PartialViewResult(recentPosts);
}
}
вынести из Partial View с помощью JQuery:
<script type="text/javascript">
$(function() {
$.get(
"/User/DisplayRecentPosts",
user, // get from the Model binding
function (data) { $("#target").html(data) } // target div for partial
);
});
</script>
Таким образом, вы можете максимизировать OutputCache для основных данных (Index()), но последние сообщения не кэшируются. (или вы можете иметь очень маленький период кеша).
Метод jQuery рендеринга частичного отличается от RenderPartial, так как вы обслуживаете HTML непосредственно с контроллера, поэтому вы можете соответствующим образом контролировать выходное кэширование.
Конечный результат очень похож на кэширование пончиков (части страницы кэшированы, другие нет).
См. Также http://stackoverflow.com/questions/4082826/when-and-how-to-go-about-performing-caching-in-asp-net-mvc/4091232#4091232 –
Кто-нибудь знает ответ? к моему обновлению? – Rana
вам нужно использовать четвертую перегрузку для RenderPartial (http://msdn.microsoft.com/en-us/library/dd470561.aspx): «Html.RenderPartial (« UserPosts.ascx », Model.UserPosts, новый ViewDataDictionary {Model = Model.UserPosts} '. – RPM1984