Url Rewriting
От: -ksu-  
Дата: 14.04.04 08:12
Оценка:
Привет!
Пытаюсь прикрутить к asp.net приложению ISAPI_Rewrite, чтобы урлы вида ../page.aspx/name1/value1 вели на ...page.aspx?name1=value1
Вроде работает, НО при постбэке осуществляется переход на ../page.aspx/name1/page.aspx?name1=value1
Кто-нибудь сталкивался с подобными явлениями?
Re: Url Rewriting
От: TK Лес кывт.рф
Дата: 14.04.04 08:25
Оценка:
Здравствуйте, -ksu-, Вы писали:

K>Пытаюсь прикрутить к asp.net приложению ISAPI_Rewrite, чтобы урлы вида ../page.aspx/name1/value1 вели на ...page.aspx?name1=value1

K>Вроде работает, НО при постбэке осуществляется переход на ../page.aspx/name1/page.aspx?name1=value1
K>Кто-нибудь сталкивался с подобными явлениями?

Нужно смотреть метод HttpContext.RewritePath. Или реализовать Rewrite функциональность самостоятельно...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Url Rewriting
От: ZORK Россия www.zorkaltsev.com
Дата: 14.04.04 08:56
Оценка:
Здравствуйте, -ksu-, Вы писали:

K>Привет!

K>Пытаюсь прикрутить к asp.net приложению ISAPI_Rewrite, чтобы урлы вида ../page.aspx/name1/value1 вели на ...page.aspx?name1=value1
K>Вроде работает, НО при постбэке осуществляется переход на ../page.aspx/name1/page.aspx?name1=value1
K>Кто-нибудь сталкивался с подобными явлениями?

Сталкивался. В .Net Framework 1.1 эта проблема не излечима, без написания своего контрола, которые будет реализовывать <form runat="server"... — так что лучше даже не тратить на это время, и жить так как есть.

-zork
Думать надо ...головой :)
Re[2]: Url Rewriting
От: TK Лес кывт.рф
Дата: 14.04.04 08:58
Оценка:
Здравствуйте, ZORK, Вы писали:

ZOR>Сталкивался. В .Net Framework 1.1 эта проблема не излечима


Я бы не был так категоричен...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Url Rewriting
От: Воронков Василий Россия  
Дата: 14.04.04 09:01
Оценка: 14 (1)
Здравствуйте, -ksu-, Вы писали:

K>Привет!

K>Пытаюсь прикрутить к asp.net приложению ISAPI_Rewrite, чтобы урлы вида ../page.aspx/name1/value1 вели на ...page.aspx?name1=value1
K>Вроде работает, НО при постбэке осуществляется переход на ../page.aspx/name1/page.aspx?name1=value1
K>Кто-нибудь сталкивался с подобными явлениями?

Вот это:
http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/URLRewriting.asp
не поможет?
Re[3]: Url Rewriting
От: ZORK Россия www.zorkaltsev.com
Дата: 14.04.04 09:28
Оценка:
Здравствуйте, TK, Вы писали:

TK>Здравствуйте, ZORK, Вы писали:


ZOR>>Сталкивался. В .Net Framework 1.1 эта проблема не излечима


TK>Я бы не был так категоричен...


Приходится. Я пропахал Anakrino'й их код, и нашел, что адрес, который пишется в form из <form runat="server... формируется из местоположения страницы или user control'а в который эта форма входит. При этом возможнсти для того чтобы его подменить на свой, или както повлять на процесс формирования я не нашел ...и потратил на это, я довольно ощутимое время — день или два.

Полагаю, что это недоработка, которая будет устранена в будущих версия .Net.

-zork
Думать надо ...головой :)
Re[4]: Url Rewriting
От: TK Лес кывт.рф
Дата: 14.04.04 09:30
Оценка:
Здравствуйте, ZORK, Вы писали:

ZOR>>>Сталкивался. В .Net Framework 1.1 эта проблема не излечима


TK>>Я бы не был так категоричен...


ZOR> Приходится. Я пропахал Anakrino'й их код, и нашел, что адрес, который пишется в form из <form runat="server... формируется из местоположения страницы или user control'а в который эта форма входит. При этом возможнсти для того чтобы его подменить на свой, или както повлять на процесс формирования я не нашел ...и потратил на это, я довольно ощутимое время — день или два.


Можно просто сделать свою реализацию IHttpHandlerFactory — тогда вообще никак мудрить с url не нужно. Собственно в статье, что привел ВВ все достаточно подробно расписано...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Url Rewriting
От: ZORK Россия www.zorkaltsev.com
Дата: 14.04.04 09:31
Оценка:
Здравствуйте, -ksu-, Вы писали:

ВВ>http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/URLRewriting.asp


Там есть про создание своей формы <%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %> — должно помочь

-zork
Думать надо ...головой :)
Re[3]: Url Rewriting
От: -ksu-  
Дата: 14.04.04 09:44
Оценка:
Здравствуйте, ZORK, Вы писали:

ВВ>>http://msdn.microsoft.com/asp.net/using/building/web/default.aspx?pull=/library/en-us/dnaspp/html/URLRewriting.asp


ZOR>Там есть про создание своей формы <%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %> — должно помочь


ZOR>-zork


Спасибо!!!
Статью я читала но именно этот кусок прошел мимо меня...

Сейчас все работает.
Re[5]: Url Rewriting
От: ZORK Россия www.zorkaltsev.com
Дата: 14.04.04 09:49
Оценка:
Здравствуйте, TK, Вы писали:

TK>Можно просто сделать свою реализацию IHttpHandlerFactory — тогда вообще никак мудрить с url не нужно. Собственно в статье, что привел ВВ все достаточно подробно расписано...


Согласен, но хочу обратить внимание на раздел этой статьи — Handling Postbacks, где, собственно, и написано то о чем я говорил. То есть, для того чтобы postback начал работать как надо, не достаточно просто переопредеить IHttpHandler или использовать UrlRewrite, а надо еще модернизировать генерацию тэга <form ...

-zork
Думать надо ...головой :)
Re[6]: Url Rewriting
От: TK Лес кывт.рф
Дата: 14.04.04 09:52
Оценка:
Здравствуйте, ZORK, Вы писали:

ZOR>Здравствуйте, TK, Вы писали:


TK>>Можно просто сделать свою реализацию IHttpHandlerFactory — тогда вообще никак мудрить с url не нужно. Собственно в статье, что привел ВВ все достаточно подробно расписано...


ZOR>Согласен, но хочу обратить внимание на раздел этой статьи — Handling Postbacks, где, собственно, и написано то о чем я говорил. То есть, для того чтобы postback начал работать как надо, не достаточно просто переопредеить IHttpHandler или использовать UrlRewrite, а надо еще модернизировать генерацию тэга <form ...


Ключевое слово не IHttpHandler, а IHttpHandlerFactory — в данном случае страница даже не подозревает о том, где физически находится *.aspx файл.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[4]: Url Rewriting
От: shapkin Великобритания  
Дата: 14.04.04 12:13
Оценка:
Здравствуйте, ZORK, Вы писали:

ZOR> Приходится. Я пропахал Anakrino'й их код, и нашел, что адрес, который пишется в form из <form runat="server... формируется из местоположения страницы или user control'а в который эта форма входит. При этом возможнсти для того чтобы его подменить на свой, или както повлять на процесс формирования я не нашел ...



Можно так сделать в обработчике событи PreRender страницы:
Context.ReqritePath(Request.RawUrl)

Тогда в форме будет тот же адрес, что и в адресной строке броузера, и все будет работать.
Re: Url Rewriting
От: shapkin Великобритания  
Дата: 14.04.04 12:17
Оценка: 14 (1)
Здравствуйте, -ksu-, Вы писали:

K>Привет!

K>Пытаюсь прикрутить к asp.net приложению ISAPI_Rewrite, чтобы урлы вида ../page.aspx/name1/value1 вели на ...page.aspx?name1=value1
K>Вроде работает, НО при постбэке осуществляется переход на ../page.aspx/name1/page.aspx?name1=value1
K>Кто-нибудь сталкивался с подобными явлениями?

В приведенном конкретном случае вообще не нужен никакой rewrite, если url страницы "page.aspx/name1/value1", то Request.PathInfo содержит в себе значение "/name1/value1".
Re[5]: Url Rewriting
От: ZORK Россия www.zorkaltsev.com
Дата: 14.04.04 12:36
Оценка:
Здравствуйте, shapkin, Вы писали:

S>Можно так сделать в обработчике событи PreRender страницы:

S>Context.ReqritePath(Request.RawUrl)

S>Тогда в форме будет тот же адрес, что и в адресной строке броузера, и все будет работать.


Рекомендую попробовать на каком-нить сложно случае. Если б все так было просто, народ бы про это в стати не писал бы

-zork
Думать надо ...головой :)
Re[6]: Url Rewriting
От: shapkin Великобритания  
Дата: 14.04.04 13:00
Оценка:
Здравствуйте, ZORK, Вы писали:

ZOR>Здравствуйте, shapkin, Вы писали:


S>>Можно так сделать в обработчике событи PreRender страницы:

S>>Context.ReqritePath(Request.RawUrl)

S>>Тогда в форме будет тот же адрес, что и в адресной строке броузера, и все будет работать.


ZOR> Рекомендую попробовать на каком-нить сложно случае. Если б все так было просто, народ бы про это в стати не писал бы


ZOR>-zork


Этот способ используется в Community Starter Kit, http://www.asp.net/Default.aspx?tabindex=9&amp;tabid=47.

Можно пример "сложного случая"?
Re[7]: Url Rewriting
От: ZORK Россия www.zorkaltsev.com
Дата: 14.04.04 13:08
Оценка:
Здравствуйте, shapkin, Вы писали:

S>Можно пример "сложного случая"?


Делаем путь http:\\[srv]\[app]\page, при обращении к app в Global.asax используя UrlRewrite перенаправляем на default.aspx, в котором есть <form runat="server"..., и смотрим что получилось в action аттрибуте формы в HTML странице, при обращении по адресу page. Конечно, так себе сложный случай, но там будет default.aspx, а не page, как хотелось бы.

-zork
Думать надо ...головой :)
Re[8]: Url Rewriting
От: shapkin Великобритания  
Дата: 14.04.04 13:25
Оценка:
Здравствуйте, ZORK, Вы писали:

ZOR>Здравствуйте, shapkin, Вы писали:


S>>Можно пример "сложного случая"?


ZOR>Делаем путь http:\\[srv]\[app]\page, при обращении к app в Global.asax используя UrlRewrite перенаправляем на default.aspx, в котором есть <form runat="server"..., и смотрим что получилось в action аттрибуте формы в HTML странице, при обращении по адресу page. Конечно, так себе сложный случай, но там будет default.aspx, а не page, как хотелось бы.


ZOR>-zork


Ну, это элементарный случай.
Обращение идет к урлу http://server/app/page.aspx.

В global.asax в обработчике, например, BeginRequest:

Context.RewritePath("default.aspx?page=page.aspx")


Теперь делаем то, о чем я писал выше.
На странице default.aspx в обработчике, например, PreRender:

Context.RewritePath(Request.RawUrl, "", "");


В action атрибуте формы — page.aspx, что и требовалось.
Re[4]: Url Rewriting
От: oRover Украина  
Дата: 14.04.04 15:13
Оценка:
Здравствуйте, -ksu-, Вы писали:

K>Спасибо!!!

K>Статью я читала но именно этот кусок прошел мимо меня...

о, пополнился наш штат представителей прекрасного пола
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.