Подтвердить что ты не робот

Scriptmanager Asp.Net Mvc

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

Попробуйте следующее: http://www.codeplex.com/MvcScriptManager

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

Особенности

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

Ответ 3

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

Вот так: -

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

Работает для меня.

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

Ответ 4

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

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

Ответ 5

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

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification