ASP.Net MVC3: размещайте файлы .js рядом с папкой «Вид» вместо папки «Сценарии». - PullRequest
7 голосов
/ 21 февраля 2012

Мы хотели бы отделить javascript от наших представлений Razor (чтобы мы могли проверить). Можем ли мы найти файлы .js рядом с представлениями, которым они соответствуют, а не в папке Scripts? Например, мы хотели бы видеть это в обозревателе решений:

MyMvcProject
    - Views
      - Home
        - About.cshtml
        - About.js

Однако я не знаю ссылки на файл .js из представления .cshtml.

Ответы [ 3 ]

9 голосов
/ 21 февраля 2012

Из соображений безопасности asp.net-mvc блокирует доступ всех файлов к папке / Views с URL.Это можно обойти, но я бы посоветовал НЕ делать это по соображениям безопасности.

Обычно вы должны оставлять свои скрипты в папке Scripts, особенно общесистемные, такие как jquery и ненавязчивый материал.Это позволяет легко обновлять их через NuGet по мере выпуска новых версий или исправлений.

Я не уверен, почему у вас возникла проблема с тестированием и оставлением их в расположении по умолчанию.

3 голосов
/ 07 августа 2012

Открыть Просмотры / Web.config и заменить это

<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />

с этим

<add name="ExcludeRazorViews" path="*.cshtml" verb="*" type="System.Web.HttpNotFoundHandler" />
1 голос
/ 21 февраля 2012

Если вы говорите о том, чтобы вычеркнуть «нестандартные» скрипты из своего поля зрения и поместить их в отдельную папку с целью тестирования вашего javascript, тогда да, вы можете поместить их в папку по вашему выбору.

Однако я бы не рекомендовал размещать их рядом с вашим представлением ... это приведет к грязной структуре проекта и сделает ее намного сложнее, если вы когда-нибудь захотите свести к минимуму свой JavaScript.

Обычно я оставляю «каркасные» файлы JavaScript в папке «Сценарии» по причинам, о которых Мистер Мэн упомянул в своем ответе, однако я поместил «пользовательский» или просмотр связанных файлов JavaScript в /Content/js/.

Чтобы ссылаться на них, вы просто добавили бы ссылку в свой вид или главную страницу (макет):

<script type="text/javascript" src="@Url.Content("~/Content/js/somelink.js")"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...