Методы действия контроллера 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 минут!