Front Controller в ASP.NET - Невозможно?
От: Аноним  
Дата: 07.02.05 19:31
Оценка:
Вообще, мне кажется я чего-то не понял в этом паттерне. AFAIK:

1. Для каждого действия создается команда.
2. HttpHandler обрабатывает Request. Выцепляет из него ключ с именем команды, создает ее экземпляр. Выполняет, передав коллекцию параметров запроса.

2. Что делает команда: Например просмотр всех кастомеров. Команда смотрит нужные параметры, выбирает из репозитария всех клиентов.
Далее команда помещает коллекцию объектов в HttpContext и делает Server.Transfer("~/Customers.aspx").

3. Форма смотрит в методе Page_Load в контекст. Берет данные и биндит их к UI.

НО:
Как обрабатывать пользовательские действия.

Банальный пример с регистрацией юзера:
Заполнил форму, нажал кнопку. Сработало событие. Button_Click. Обрабатываем его, вставляя данные в базу.

ИЛИ

При щелчке нужно отправить данные HttpHandler'у
и там команда должна с ними поработать. Мне кажется что именно так и надо поступать...

ВНИМАНИЕ ВОПРОС:

...
Но есть проблема! Я не представляю как такое сделать.
Прописать PostBackUrl (asp.net 2.0) например на ~/SignUp.html
Как же потом взять значения из текстбоксов формы?
Request.Params содержит параметры с ID текстбоксов + префикс согласно своим религиозным убеждениям.

Можно засунуть в контекст значения полей, но сделать Server.Transfer на Url, кот. вызывает соотв. команду уже не получиться (Error creating child request).

Или вообще отказаться от PostBack'ов и юзать обычные html формы? Это почти невозможно.
Re: Front Controller в ASP.NET - Невозможно?
От: Gollum Россия  
Дата: 08.02.05 12:39
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Вообще, мне кажется я чего-то не понял в этом паттерне. AFAIK:


Implementing Front Controller in ASP.NET Using HTTPHandler
Товариши офицеры, вот вы сейчас ничего не слушаете, а потом придет время — вы протона от электрона отличить не сможете!
Eugene Agafonov on the .NET

Re[2]: Front Controller в ASP.NET - Невозможно?
От: Аноним  
Дата: 08.02.05 18:58
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, <Аноним>, Вы писали:


А>>Вообще, мне кажется я чего-то не понял в этом паттерне. AFAIK:


G>Implementing Front Controller in ASP.NET Using HTTPHandler


Спасибо, это я уже читал.
1. После RewritePath и Transfer при PostBack'е будет уродливый Url.
Пока что, я решил эту проблему отказавшись от серверных форм. Если же использовать PostBackUrl, но не получиться получить значения Control'ов через PreviousPage.FindControl. Не понятно почему.

2. Тут не описывается, как можно красиво решить проблему многих страниц (хотя и не должно). Хотелось бы посмотреть где-нибудь. Думаю, сделать соотв. классы (SearchResultView, SignInView) которые будут содержать в себе метаданные о контролах, ContentPlaceHolde'ах и MasterPage (если ее можно подключить программно). Команда, кот. должна сделать ServerTransfer, выбирает view, помещает его в контекст, а страница потом собирает себя в Page_Load. Контролы берут соотв. значения из контекста и инициализируются. Хотя тут в View можно сделать соотв. свойства и, пользуясь всеми богатствами IntelliSence инициализировать DataSource'ы и проочее...
Re[3]: Front Controller в ASP.NET - Невозможно?
От: GarryIV  
Дата: 08.02.05 20:01
Оценка:
Hello, !

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


G>> Здравствуйте, <Аноним>, Вы писали:


А>>> Вообще, мне кажется я чего-то не понял в этом паттерне. AFAIK:


G>> [url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/d

G>> npatterns/html/ImpFrontControllerInASP.asp]Implementing Front
G>> Controller in ASP.NET Using HTTPHandler[/url]

> Спасибо, это я уже читал.

> 1. После RewritePath и Transfer при PostBack'е будет уродливый Url.
> Пока что, я решил эту проблему отказавшись от серверных форм. Если же
> использовать PostBackUrl, но не получиться получить значения Control'ов
> через PreviousPage.FindControl. Не понятно почему.

в скрипте document.forms[0].action=''; И постбяк будет нормальный. Это они конечно сволочи, что не дают action по человечески менять....

WBR, Igor Evgrafov.
Posted via RSDN NNTP Server 1.9
WBR, Igor Evgrafov
Re[4]: Front Controller в ASP.NET - Невозможно?
От: Аноним  
Дата: 08.02.05 20:05
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Hello, !


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


G>>> Здравствуйте, <Аноним>, Вы писали:


А>>>> Вообще, мне кажется я чего-то не понял в этом паттерне. AFAIK:


G>>> [url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/d

G>>> npatterns/html/ImpFrontControllerInASP.asp]Implementing Front
G>>> Controller in ASP.NET Using HTTPHandler[/url]

>> Спасибо, это я уже читал.

>> 1. После RewritePath и Transfer при PostBack'е будет уродливый Url.
>> Пока что, я решил эту проблему отказавшись от серверных форм. Если же
>> использовать PostBackUrl, но не получиться получить значения Control'ов
>> через PreviousPage.FindControl. Не понятно почему.

GIV>в скрипте document.forms[0].action=''; И постбяк будет нормальный. Это они конечно сволочи, что не дают action по человечески менять....


В 2.0 сделали у кнопок PostBackUrl

GIV>WBR, Igor Evgrafov.
Re[4]: Front Controller в ASP.NET - Невозможно?
От: Аноним  
Дата: 08.02.05 20:07
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Hello, !


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


G>>> Здравствуйте, <Аноним>, Вы писали:


А>>>> Вообще, мне кажется я чего-то не понял в этом паттерне. AFAIK:


G>>> [url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/d

G>>> npatterns/html/ImpFrontControllerInASP.asp]Implementing Front
G>>> Controller in ASP.NET Using HTTPHandler[/url]

>> Спасибо, это я уже читал.

>> 1. После RewritePath и Transfer при PostBack'е будет уродливый Url.
>> Пока что, я решил эту проблему отказавшись от серверных форм. Если же
>> использовать PostBackUrl, но не получиться получить значения Control'ов
>> через PreviousPage.FindControl. Не понятно почему.

GIV>в скрипте document.forms[0].action=''; И постбяк будет нормальный. Это они конечно сволочи, что не дают action по человечески менять....


И все равно через жопу. А форма будет иметь статус "Посланная назад" если пройдет через HttpHandler где RewritePath а потом Server.Transfer?

GIV>WBR, Igor Evgrafov.
Re[5]: Front Controller в ASP.NET - Невозможно?
От: GarryIV  
Дата: 08.02.05 20:29
Оценка:
Hello, !

??>>> Спасибо, это я уже читал.
??>>> 1. После RewritePath и Transfer при PostBack'е будет уродливый Url.
??>>> Пока что, я решил эту проблему отказавшись от серверных форм. Если же
??>>> использовать PostBackUrl, но не получиться получить значения
??>>> Control'ов через PreviousPage.FindControl. Не понятно почему.

GIV>> в скрипте document.forms[0].action=''; И постбяк будет нормальный.

GIV>> Это они конечно сволочи, что не дают action по человечески менять....

> И все равно через жопу. А форма будет иметь статус "Посланная назад" если

> пройдет через HttpHandler где RewritePath а потом Server.Transfer?

Я только, RewritePath делаю. Все нормально... Сразу оба не пробовал

WBR, Igor Evgrafov.
Posted via RSDN NNTP Server 1.9
WBR, Igor Evgrafov
Re[6]: Front Controller в ASP.NET - Невозможно?
От: AlexanderMakeev  
Дата: 09.02.05 10:06
Оценка:
Здравствуйте, GarryIV, Вы писали:

>> И все равно через жопу. А форма будет иметь статус "Посланная назад" если

>> пройдет через HttpHandler где RewritePath а потом Server.Transfer?

GIV>Я только, RewritePath делаю. Все нормально... Сразу оба не пробовал


После Server.Transfer IsPostBack всегда равен false.

Если кто знает, как сие побороть, помогите, люди добрые!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.