ASP.NET маршрутизация URL MVC с несколькими значениями маршрута

Я понимаю, что у вас есть две заявки. Они не могут общаться друг с другом напрямую. Вам нужно стороннее посредничество. Файл, база данных, сетевой поток или MemoryMappedFile. Приложение QlikSense.NET принудительно обновляется до посредника, а приложение Bot Framework считывает обновление из посредника.

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

50
задан Ian Oxley 9 April 2009 в 02:33
поделиться

3 ответа

Он использует первый полностью удовлетворенный маршрут. Попробуйте поставить свой маршрут SlugsAfterId выше По умолчанию .

В основном это происходит: «Проверить по умолчанию. Есть действие? Да. Есть идентификатор? Да. Использовать этот и Чак любые другие параметры в строке запроса. "

Как примечание, выполнение этого сделает ваш маршрут по умолчанию избыточным, поскольку вы предоставляете значение по умолчанию для параметра slug .

60
ответ дан Garry Shutler 7 November 2019 в 10:50
поделиться

Гарри (вверху) прав. Вы можете использовать отладчик маршрута мистера Хаака для MVC. Это может помочь решить проблемы с маршрутизацией, показывая, какие маршруты выбраны и когда.

Вот сообщение в блоге . А вот и Zip файл .

32
ответ дан Brettski 7 November 2019 в 10:50
поделиться

Вы можете добавить к своим маршрутам ограничение, содержащее "id", поскольку оно предположительно принимает только число. Таким образом, первый маршрут будет соответствовать только тогда, когда «id» является числовым, тогда он сделает второй маршрут для всех других значений. Затем поместите тот, который включает {slug} вверху, и все должно работать правильно.

routes.MapRoute(
    "SlugsAfterId",
    "{controller}.mvc/{action}/{id}/{slug}",
    new { controller = "Products", action = "Browse", id = "", slug = "" },
    new { id = @"\d+" }
);

routes.MapRoute(
    "Default",                                              // Route name
    "{controller}.mvc/{action}/{id}",                           // URL with parameters
    new { controller = "Home", action = "Index", id = "" },  // Parameter defaults
    new { id = @"\d+" }
);

routes.MapRoute(
    "Tagging",
    "{controller}.mvc/{action}/{tags}",
    new { controller = "Products", action = "Index", tags = "" }
);
8
ответ дан 7 November 2019 в 10:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: