Программно передать URL-адрес через привязку маршрутизации/модели

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

e.g.:

/{optional section}/{optional section}/{optional section}/{optional section}/?p1=&p2=....

Затем это подхватывается сложным настраиваемым связывателем модели, который затем преобразует данные маршрута в сложный объект с примерно 50 полями и сложными подобъектами.

Есть ли способ программно передать URL-адрес в систему маршрутизации MVC, чтобы он выдавал объект, привязанный к модели (как это сделал бы стандартный метод действия при передаче через HTTP)?

Ваше здоровье.


person Dave Bish    schedule 20.06.2012    source источник
comment
просто запросить URL-адрес из браузера и отладить метод действия?   -  person Ventsyslav Raikov    schedule 20.06.2012
comment
Почти уверен, что я только что задал тот же вопрос пару минут назад ?? stackoverflow.com/ вопросы/11118914/   -  person Alex    schedule 20.06.2012
comment
@Бонд - я не понимаю...   -  person Dave Bish    schedule 20.06.2012
comment
Я не уверен, чего вы пытаетесь достичь, но вот пара вещей, которые могут быть полезны. Регистрация маршрута выполняется при запуске приложения. Это означает, что это будет сделано только после того, как вы развернете и запустите приложение в первый раз. Если вам нужен текущий URL. вы можете получить его через текущий контекст http HttpContext.Request.Url RouteDebugger звучит многообещающе для устранения вашей проблемы. haacked.com/archive/2011/04/13/routedebugger-2. aspx   -  person HoBa    schedule 17.08.2012


Ответы (1)


Исходный код одного из файлов RouteDebugger находится здесь. В нем вы найдете методы, которые извлекают список маршрутов, перебирают их и выясняют, какие из них соответствуют заданному URL-адресу. Вы должны быть в состоянии использовать этот пример, чтобы решить хотя бы часть вашей проблемы: выяснить, какое определение маршрута использовать. Вы также можете выяснить классы, используемые системой маршрутизации, что может дать вам способ выполнить привязку модели.

person DougWebb    schedule 19.09.2012