ASP.NET MVC сохранение представлений в HTML - PullRequest
1 голос
/ 03 августа 2009

Я хотел бы иметь действие, которое по первому запросу сохранит результат просмотра в файл HTML, а затем вернет представление, и в следующем запросе MvcHandler просто укажет на этот сгенерированный файл HTML, не обращаясь к контроллер, таким образом, я могу избежать тяжелой работы с БД на страницах, которые обычно остаются статичными.

Как это можно сделать?

Ответы [ 3 ]

5 голосов
/ 03 августа 2009

Вам не нужно. Просто используйте атрибут OutputCache.

См. http://www.asp.net/learn/mvc/tutorial-15-cs.aspx

2 голосов
/ 16 августа 2009

Я нашел то, что искал в ответе Дана Аткинсона на этот вопрос:

Визуализация представления строки в MVC с последующим перенаправлением - обходные пути?

0 голосов
/ 03 августа 2009

Хотя то, что вы описали, действительно является возможной стратегией для ускорения процесса, OutputCache - жизнеспособная альтернатива.

Выходной кэш живет в памяти в течение конечного времени. Также обратите внимание на то, что если вы пишете HTML-файл, будет задействована операция записи. Вам также может понадобиться механизм для обновления HTML-файла, который вы написали.

Если вы хотите придерживаться своей собственной стратегии (читать файл с сервера), вы можете легко это сделать.

В контроллере вы можете проверить, существует ли ваш файл следующим образом.

public ContentResult MyPage()
{
    if(System.IO.File.Exists(Server.MapPath("myFile.html"))
    {
      return Content(System.File.ReadAllText("myFile.html");
    }
    else
    {
         GenerateMyFile(); //This function generates the file
         return Content(System.File.ReadAllText("myFile.html");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...