Вы говорите, что сам метод действия вызывает XCopy? интересная идея (пока она включена только на этапе разработки). хорошее решение проблемы. я избежал отдельных областей проектов из-за этого ограничения
ы действия контроллера ASP.NET MVC в основном используются для обработки «бизнес-операций», но могут использоваться и для многих других.
Я подумал, что было бы интересно посмотреть, какие творческие, полезные вещи, которые люди создали для этих действий, могут быть полезными или полезными для других.
Вот мой вклад:
Конкатенация файлов Javascript - дляуменьшить количество http запросов:
[OutputCache(Duration = 5 * 60, VaryByParam="")] // DONT USE "None" here *
public ContentResult RenderJavascript(){
StringBuilder js = new StringBuilder();
StringWriter sw = new StringWriter(js);
// load all my javascript files
js.AppendLine(File.ReadAllText(Request.MapPath("~/Scripts/jquery.hoverIntent.minified.js")));
js.AppendLine(File.ReadAllText(Request.MapPath("~/Scripts/jquery.corner.js")));
js.AppendLine(File.ReadAllText(Request.MapPath("~/Scripts/rollingrazor.js")));
return new ContentResult()
{
Content = js.ToString(),
ContentType = "application/x-javascript"
};
}
Карта маршрута к нему:
// javascript
routes.MapRoute(
"js-route",
"dynamic/js",
new { controller = "Application", action = "RenderJavascript" }
);
Обратитесь к нему с вашей главной страницы:
<script type="text/javascript" src="/dynamic/js"></script>
Имейте в виду, что я установил кеш для вывода, поэтому, если вы меняете JS и обновляете страницу, вы можете отключить кеш!
Мне нужно вернуться и выяснить, как это сделать.
*
Вы не должны использовать VaryByParam = "None", потому что это вызывает отправку заголовка Vary, чтозаставляет браузер вернуться и проверить наличие новой версии, Если вам действительно нужно изменить свой js-контент, то ваши пользователи просто должны ждать 5 минут!