ASP.NET MVC 2 НЕ распознает мой файл JavaScript - PullRequest
0 голосов
/ 19 апреля 2011

РАЗРЕШЕНО: Мне пришлось прокомментировать _routes.RouteExistingFiles = true;, и он начал распознавать мои файлы .js.

Я не понимаю, почему мое приложение ASP.NET MVC 2 НЕ распознает моефайлы сценариев Java.Я попробовал следующие способы включения моего скрипта, но он не распознает.

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript" src="<%= Url.Content("~/JS/JScript1.js") %>"></script> 
<script src="../../JS/JScript1.js" type="text/javascript"></script>

JScript1.js находится по адресу <root>/JS/JScript1.js

В моей ControllerFactory появляется следующая ошибка:

The controller for path '/JS/JScript1.js' was not found or does not implement IController.

Вот мои настройки маршрута:

    _routes.RouteExistingFiles = true;
    _routes.IgnoreRoute("{file}.txt");
    _routes.IgnoreRoute("{file}.htm");
    _routes.IgnoreRoute("{file}.html");
    _routes.IgnoreRoute("{file}.xml");
    // Ignore axd files such as assest, image, sitemap etc
    _routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    // Ignore the assets directory which contains images & css
    _routes.IgnoreRoute("Content/{*pathInfo}");
    //Exclude favicon (google toolbar request gif file as fav icon)
    _routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.([iI][cC][oO]|[gG][iI][fF])(/.*)?" });
    _routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" });

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

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

rout.IgnoreRoute ("JS / *. Js");

0 голосов
/ 19 апреля 2011

Ваш маршрут отображается следующим образом:

/JS/JScript1.js
/{controller}/{action}/[empty string]

, потому что это первый маршрут, который ему соответствует.Поскольку у вас нет контроллера с именем JSController, вы получаете сообщение об ошибке.У вас есть несколько вариантов:

  • игнорировать маршруты, содержащие расширение .js
  • использовать папку содержимого, через которую среда по умолчанию позволяет вещам проходить
  • удалитьмаршрут по умолчанию и добавьте маршруты для каждого из ваших контроллеров вручную
  • поместите ваш файл js как минимум в 3 папки, чтобы он больше не соответствовал маршруту по умолчанию (т. е. /level1/level2/level3/JScript1.js)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...