ASP.NET MVC Маршрутизация - PullRequest
       5

ASP.NET MVC Маршрутизация

0 голосов
/ 04 декабря 2010

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

routes.MapRoute(
        "Search", // Route name
          "{controller}/{action}/refno/{refno}/status/{status}/proptype/{proptype}/locality/{locality}/pricefrom/{pricefrom}/priceto/{priceto}", // URL with parameters
         new { controller = "Property", action = "Search", refno = "0", proptype = "ANY TYPE", status = "ANY STATUS", locality = "ANY LOCALITY", pricefrom = "0", priceto = "NO LIMIT" }

и запрос действия = "/ Свойство / Поиск / Refno / 0 / Статус / Преобразованный / Пропуск / Воздушное пространство / Населенный пункт / Любой населенный пункт / Цена от / 0 / Цена до / Без ограничений"фактически называет маршрут правильно.

Однако есть что-то странное.Когда отображается форма поиска с результатами, теги сценариев javascript игнорируются, и поэтому некоторые выпадающие списки, которые заполняются через javascript, не заполняются.У меня сложилось впечатление, что созданная мною маршрутизация фактически блокирует теги сценариев, которые есть на главной странице.

Может кто-нибудь мне помочь.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2010

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

Я просто запустил веб-сайт на IIS Express, чтобы отследить его.Кажется, что правильное сообщение делается, но затем в форме результатов файлы js запрашиваются как сообщение поиска и файл js.

Например .... если я публикую в / search / properties / refno / 5 / propstatus / Закончено, сначала создается правильное сообщение, затем, когда отображается форма результатов, выполняется действие GETв /search/properties/refno/5/propstatus/finished/jquery/jquery0.5.2.min.js, что неверно.

Чтобы дать вам представление о том, что я делаю.Это пользовательский элемент управления.Я размещаю только форму действий.Прямо сейчас я отправляю на статический маршрут только для проверки.

action = "/ Свойство / Поиск / refno / 0 / status / Converted / proptype / Airspace / locality / Любой населенный пункт / pricefrom / 0 / priceto /No limit "method =" post ">

Это js файлы заголовка главной страницы

 <script type="text/javascript" src="../../Scripts/jquery/001-jquery-1.4.2.min.js"></script>
 <script type="text/javascript" src="../../Scripts/jquery/jquery.lightbox-0.5.min.js"></script>
 <script type="text/javascript" src="../../Scripts/utils/jquery.markaf.mvc.utils.debug.js"></script>
 <script type="text/javascript" src="../../Scripts/ui/ui.search.debug.js"></script>

И это форма поиска, которую контроллер отправляет на

Поиск

<% foreach (var item в Model) {%> Ссылочный номер: <%: item.RefNo%>

<%: item.Description%>

Цена: <%: item.Price.ToString ("c")%>

"> Подробнее ...

<%}%>

0 голосов
/ 04 декабря 2010

Ваш браузер ищет файлы .js относительно URL.Убедитесь, что ваши теги сценариев ссылаются на ваши файлы .js с помощью Url.Content ("~ / somepath / file.js").

Если это не проблема, убедитесь, что нет ошибки JavaScriptместо на вашей странице, которое блокирует выполнение остальных.

...