Как управлять файлами для модуля в ASP.net MVC 3

#asp.net-mvc-3

#asp.net-mvc-3

Вопрос:

Я создал небольшой модуль в ASP.net MVC, который состоит из

  • файл javascript
  • файл css
  • частичный просмотр razor
  • класс модели c #

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

  • /Скрипты
  • /Содержимое/css
  • /Посмотреть
  • /Модели

Я знаю, что MVC предназначен для их разделения, и это нормально для приложения, но в моем случае я был бы счастлив иметь все файлы где-нибудь вместе.

В MVC есть области, но я думаю, что это слишком много для небольшого модуля. Все, что я хочу, это создать небольшой пакет в моем приложении для файлов этого модуля.

Есть хороший подход для этого? Как вы с этим справляетесь?

Ответ №1:

  • /Скрипты
  • /Содержимое/css
  • /Просмотреть
  • /Модели

Это всего лишь структура, которая используется по умолчанию asp.net шаблон проекта mvc накладывает.

У вас может быть любая структура, которая вам нравится, но я бы рекомендовал разделять ваши представления и модель.

Поскольку наша «модель» обычно находится в другой сборке, структура нашего проекта MVC обычно:

  • Приложение (весь код информационной структуры приложения)
  • Содержание
    • css
    • Изображения
    • Скрипты
  • Контроллеры
  • ViewModels
  • Число просмотров

Опять же, это личные предпочтения, но обычно я предпочитаю хранить свои статические ресурсы (css, изображения, скрипты) в одном каталоге.

Вы, конечно, можете еще больше разделить вещи. Например, если мы используем плагин javascript, который имеет собственный «основной» css и изображения, то мы обычно храним их вместе, например:

  • Содержание
    • css
    • Изображения
    • Скрипты
      • библиотеки
        • myplugin
          • myplugin.js
          • myplugin.css
          • myplugin.png

Конечно, когда вы разделяете вещи таким образом, управлять ими может стать сложно. По этой причине мы используем Client Dependency Framework. Вы также могли бы попробовать Cassette.

Комментарии:

1. Отлично, большое спасибо. Никогда не думал об использовании такой платформы клиентских зависимостей, я попробую это.