Хотя то, что вы описали, действительно является возможной стратегией для ускорения процесса, 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");
}
}