Вопрос

Я бы хотел использовать некоторые функции ScriptManager в новой модели Asp.net MVC:

1- Объединение скриптов
2- Разрешение различных путей для внешних файлов Javascript
3- Сокращение до минимума и сжатие в формате Gzip

Здесь это то, что я нашел, но я не уверен, что это лучший способ для подхода MVC.В общем, каков хороший подход к работе с кодом Javascript в модели MVC?

Это было полезно?

Решение

Возможно, вы могли бы просто создать новый контроллер 'Scripts' с различными действиями, обслуживающими различные комбинации сжатых файлов JS. Поскольку MVC разработан с использованием подхода, ориентированного на ресурсы, то есть URL-адреса теперь находятся в центре вашей модели программирования, почему бы не определить простые URI для ваших Javascripts?

Например, в своих представлениях вы можете ссылаться на свои файлы следующим образом:

<script src="http://your_domain/scripts/all"/>

Это вызовет ваше действие «все», в результате чего будут отправлены все сжатые файлы сценариев.

Конечно, вам сейчас придется кодировать объединение и сжатие или, возможно, повторно использовать Scriptmanager, я не знаю, возможно ли это.

Это всего лишь идея, в настоящее время я ссылаюсь на отдельные файлы javascript прямо на моих главных страницах.

Другие советы

Попробуйте это: http://www.codeplex.com/MvcScriptManager

  

MvcScriptManager предназначен для переноса некоторых ключевых функций, доступных в ToolkitScriptManager AjaxControlToolkit, в текущий ASP.NET MVC Framework. Вы сможете использовать его в качестве элемента управления в приложении ASP.NET MVC.

     

Особенности

     <Ол>   
  • Комбинация скриптов (или конкатенация). Сценарии, объявленные с помощью MvcScriptManager, будут на лету объединены в один запрос файла сценария при визуализации страницы.
  •   
  • Сценарий минимизации (или хруста) в режиме выпуска. Процесс минимизации выполняется только один раз при первом запросе, который ссылается на конкретный скрипт. Последующие запросы будут использовать сжатое содержимое скрипта в кеше (подробнее см. # 5). Хруст может быть включен / отключен для каждого сценария.
  •   
  • Визуализируйте локализованные ресурсы для автономных файлов сценариев. Локализованные строки будут добавлены в сценарий, если указано.
  •   
  • Поддержка настраиваемых параметров сжатия HTTP и срока действия при выводе сценариев.
  •   
  • Кэширование скрипта с зависимостью от файла. Содержимое файла сценария кэшируется, так что рендеринг объединенного файла сценария будет намного более производительным. Зависимость кэша связана с физическим файлом, поэтому любое обновление скрипта в файловой системе будет немедленно отражено в кэше.
  •   
  • Поддержка сценариев рендеринга в режиме отладки / выпуска в зависимости от работающей среды.
  •   
  • Разрешение разных путей для файлов автономных скриптов.
  •   
  • Поддержка нескольких MvcScriptManager на одной странице (или главной странице). Поддержите режимы Master и Slave, чтобы скрипты, объявленные с одним ScriptManager, могли быть перенесены на другой для рендеринга.
  •   
  • Поддержка сценария веб-фермы ...
  •   

    Или как насчет того, чтобы включить сам ScriptManager в качестве единственного обитателя одиночного, одноразового приложения для каждой страницы <form runat="server"> ?

    Вот так:-

       <form runat="server">
          <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true">
          </asp:ScriptManager>
        </form>
    

    У меня это работает.

    P.S.Вам нужно будет убедиться, что этот тег формы никогда не будет встроен в другую форму.Вложенные формы не работают.

    Обнаружил, что это исследование во многом аналогично проблеме: Простой ScriptManager для ASP.NET MVC - написанный после ответа на этот вопрос, поэтому добавлен для справки.

    Вначале я использую решение для грубой силы, т.е. вставляю все это в главную страницу (тем более, что теперь можно извлечь jQuery из CDN Microsoft), а затем мы собираемся исследовать варианты более оптимальных решений.

    MVC 4 теперь включает помощников по связыванию и минификации. Вы определяете все сценарии, которые входят в ваш пакет, а MVC позаботится о пакетировании, сжатии, очистке кэша и т. Д.

    http://www.asp.net/mvc/ учебники / MVC-4 / пакетирования-и-минификация

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top