Используйте маршрутизацию asp.net поверх старой системы asp - PullRequest
0 голосов
/ 11 февраля 2011

Я экспериментирую с использованием маршрутизации MVC как временного исправления, чтобы получить дружественные для SEO URL-адреса в старой (классической VB6 / ASP) системе, пока она переписывается (что займет много времени).

В старой системе есть 1 файл asp с dll vb6, который генерирует html, который обслуживается response.write в master.asp.

, поэтому URL-адреса этой системы выглядят так:
www.foo.com/master.asp?sessionid=abc123&pagetype=Item&ItemID=My-widget

Мне интересно, могу ли я использовать проект MVC для создания маршрута для чистых URL-адресов и иметь контроллерсопоставьте значения и создайте соответствующий старый URL, а затем выполните Server.Transfer к нему.

Таким образом, новый URL будет выглядеть так:
www.foo.com / Item / My-widget

и сопоставьте старый URL-адрес по адресу
www.foo.com / master.asp? Sessionid = abc123 & pagetype = Item & ItemID = My-widget

оба могут быть использованы взаимозаменяемо, так что существующий сайт не нужно менять, но я мог бы использовать новый очистительURL на внешних сайтах для лучшего SEO

Возможно ли это?Есть ли другой способ сделать это?

edit: , поскольку невозможно использовать server.transfer из MVC, сейчас я рассматриваю возможность использования маршрутизации в приложении веб-форм ASP.net.Это должно позволить мне выполнить маршрутизацию части приложения.Отправлю сюда, как только попробую.

Ответы [ 3 ]

0 голосов
/ 11 февраля 2011

Не могу придумать, как вы могли бы это сделать, но вам может повезти с модулем перезаписи URL в iis: http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

0 голосов
/ 11 февраля 2011

Я думаю, что можно заставить работать, но это не звучит идеально.Я подозреваю, что у вас тоже возникнут проблемы с обменом данными между двумя сессиями.Это может быть хорошей идеей, если вы планируете перейти на .net, и приложение какое-то время будет работать в состоянии «пополам» (если это так, я бы предложил ввести библиотеку управляемого ядра, совместно используемую обеими сторонами ранее).беспокоюсь о переписывании URL).

В последнее время я мало работал с классическим ASP, но я думаю, что этот пост по перезаписи URL в классическом ASP может быть полезен для вас.

0 голосов
/ 11 февраля 2011

Я бы предложил вам использовать библиотеку UrlRewriter.net. В нем гораздо больше функций, чем во встроенной платформе маршрутизации (включая поддержку Regex), поддержка постоянных перенаправлений, и все это настраивается в файле web.config.

Я пытался использовать Routing и раньше для такого рода вещей, но обнаружил, что он очень быстро стал ограничивать.

http://urlrewriter.net/

Редактировать: вам все еще понадобится «обертка» веб-проекта .net для классического решения asp, хотя, как вы описываете в своем вопросе, это, конечно, связано с его собственными проблемами, как описано в других ответах.

...