Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.225.31.159] |
|
Сообщ.
#1
,
|
|
|
И так вот нашел вот такую штуку: Маршрутизация
в статье используются "Маршруты, обработчики маршрутов и модуль маршрутизации", есть много подобных статей и везде все по разному, я точно понял что микрософт обработчики юзать не хочю, хочю ручками написать. И так к примеру: в корне проекта папка "in" в папке несколько форм: reg.aspx Account.aspx EditingAccount.aspx user.aspx нуно реализовать маршруты http://subdomen.domen/reg http://subdomen.domen/account http://subdomen.domen/editingaccount и скажем так одна страничка принимает get параметр (id пользователя) user.aspx?id=0000 к которой нужно обратится так: http://subdomen.domen/id0000 или так: http://subdomen.domen/blatnoy_user с чего бы начать? пустой проект для издевательств уже готов) |
Сообщ.
#2
,
|
|
|
Цитата -=VIRUS=- @ я точно понял что микрософт обработчики юзать не хочю, хочю ручками написать. какие микрософт обработчики? в статье по ссылке описаны методы для асп.нета, ты не хочешь его использовать? используй PHP |
Сообщ.
#3
,
|
|
|
не хочю вот это юзать
вот это подходит: токо я не вкурил как такое за юзать http://subdomen.domen/id0000 в лучшем случае вот так получается routes.Clear() routes.MapPageRoute("Account", "account", "~/in/Account.aspx") routes.MapPageRoute("EditingAccount", "editingaccount", "~/in/EditingAccount.aspx") routes.MapPageRoute("reg", "reg", "~/in/reg.aspx") routes.MapPageRoute("user", "user/{id}", "~/in/User.aspx") ' /user/0000 Вот это routes.MapPageRoute("user", "user/{id}", "~/in/User.aspx") работает не так как хотелось бы. во первых http://subdomen.domen/user/0000 - чтоб получить "0000" пришлось нечто другое писать http://subdomen.domen/user/ID0000 http://subdomen.domen/user/SUPER_USER ID = Page.RouteData.Values("id") If Not ID Is Nothing Then If ID.Length > 3 Then If LCase(Mid(ID, 1, 2)) = "id" Then ' ID пользователя Label1.Text = "ID пользователя: " + ID ' ID0000 Else ' блатной URL Label1.Text = "Блатной URL пользователя: " + ID ' SUPER_USER End If End If End If можно как то из пути убрать user "http://subdomen.domen/user/ID0000 -> http://subdomen.domen/ID0000(http://subdom...PER_USER") думал вот так: routes.MapPageRoute("user", "{URL}", "~/err.aspx") сделать, типо все отправить на ERR.aspx, а оттуда уже переадресовать если ключь будет опознан. Не уверен как себя поведет aspx, даже если примет код) и... переадресация постоянная как скажется на скорости? предположим что использовал такой код: ""user", "{URL}", "~/err.aspx"" пользователю загружается err.aspx? то есть ну к примеру грузим http://subdomen.domen/ID0000 в Page_Load (err.aspx) ловим Page.RouteData.Values("URL") и если URL = ID0000 делаем редирект на user.aspx?id=0000 что и в какой последовательности будет получать браузер пользователя? Добавлено не с редирект затея плохая, работать работает, но адрес не тот http://localhost:10652/in/user.aspx?id=ID0000 |
Сообщ.
#4
,
|
|
|
routes.MapPageRoute("user", "id{id}", "~/in/User.aspx") ? |
Сообщ.
#5
,
|
|
|
Цитата UncleBob @ routes.MapPageRoute("user", "id{id}", "~/in/User.aspx") Ну так работает, да. Я уже методом перебора нашел) Как такое сделать? : http://subdomen.domen/super_user http://subdomen.domen/vitalii http://subdomen.domen/anton Мысли конечно есть, множественной переадресацией. Чют я пока в голове не могу сложить. routes.MapPageRoute("err", "err/{key}", "~/Default.aspx") routes.MapPageRoute("user", "{URL}", "~/in/User.aspx")' типо тут проверим что после слеша, проверяющий код на стороннице User.aspx На user.aspx по искать ссылку, и если нету, Response.Redirect("/err/not_url")' если блатной ссылки не нашлось переадресовать на Default.aspx с ключем not_url теперь сам вопрос по routes.MapPageRoute: Предположим ссылка на пользователя http://subdomen.domen/ID0001 он в настройках ее меняет на vitalii, то есть должно выглядеть так http://subdomen.domen/vitalii что мне нужно сделать?(вопрос на занятость понятен) я так понимаю просто сохранить настройку и начать отлавливать ее в User.aspx в этом варианте все что http://subdomen.domen/xxxx проходит проверку тут: routes.MapPageRoute("Account", "account", "~/in/Account.aspx") routes.MapPageRoute("EditingAccount", "editingaccount", "~/in/EditingAccount.aspx") routes.MapPageRoute("reg", "reg", "~/in/reg.aspx") routes.MapPageRoute("err", "err/{key}", "~/Default.aspx") routes.MapPageRoute("user_id", "id{id}", "~/in/User.aspx") routes.MapPageRoute("user", "{URL}", "~/in/User.aspx") можно ли как то произвести проверку до вызова User.aspx, например в Global.asax Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) ' Порождается в начале каждого запроса End Sub если ссылка не корректна сбросить ее сразу в /err/not_url, ну как то так. |