Связывание Javascript в другую папку

Как я могу работать с JavaScript из другой папки (кроме папки скрипта). Если я это сделаю:

bundles.Add(new ScriptBundle("~/bundles/search").Include("~/Views/Search/*.js"));

браузер говорит мне, что файл javascript не может быть найден. Возможно ли это сделать или все мои sripts должны быть в папке Scripts?

в основном я хочу, чтобы мой Javascript был включен в мои подпапки представления

3 ответов


вам нужно изменить web.config на по этого ответа: In ASP.NET MVC, как я могу загрузить скрипт из папки view?

хороший пример от Эшли Ли:

<system.webServer>
  <handlers>
    <add name="JavascriptViewHandler" path="*.js" verb="*"
        preCondition="integratedMode" type="System.Web.StaticFileHandler" />
    <remove name="BlockViewHandler"/>
    <add name="BlockViewHandler" path="*" verb="*"
      preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  </handlers>
</system.webServer>

поскольку вы специально хотите включить только файлы javascript, сделайте следующее изменение в свой ~/Views/web.config файл, добавив раздел" JavascriptViewHandler".

<system.webServer>
  <handlers>
    <add name="JavascriptViewHandler" path="*.js" verb="*"
        preCondition="integratedMode" type="System.Web.StaticFileHandler" />
    <remove name="BlockViewHandler"/>
    <add name="BlockViewHandler" path="*" verb="*"
      preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  </handlers>
</system.webServer>

это сохранит все текущие блокировки для файлов, отличных от javascript.


Я не знаю, правильно ли я понял ваш вопрос, но если вы хотите использовать файл сценария из любой папки в представлении или предпочтительно в его макете, вы можете добавить следующий тег в вы View или _Layout.cshtml:

<script src="@Url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script>

вы можете указать полный путь к файлу скрипта вместо ~/Scripts/jquery-ui.min.js