Надо сделать такую же штуку. Чтобы по-умолчанию Default.aspx выводил данные из одной таблицы, с определённым параметром, например: Default.aspx?page=web, — выводил данные из другой таблицы совсем в другом виде и с другими контроллами, с возможностью редактировать и обновлять. Немного не понятна сама архитектура такого файла. Не делается же это всё блоками if...else или switch...case?
Может кто-нибудь объяснит или ссылку на документацию кинет. Буду премного благодарен!
Здравствуйте, Crazy Diamond, Вы писали: CD>Вопрос такой: как делаются сайты с одним управляющим файлом "Default.aspx"? CD>Например: http://aspnetmania.com или http://gotdotnet.ru . CD>Может кто-нибудь объяснит или ссылку на документацию кинет. Буду премного благодарен!
например http://www.mian.ru/ построен по такой технологии (правда обычный ASP). У нас юзается база данных и только она. Все берем оттуда. Как организовать ее в твоем случае — думай сам.
Простейший вариант — хранить в БД готовый HTML для отображения. В зависимости от параметра берешь нужный и показываешь.
Здравствуйте, Crazy Diamond, Вы писали:
CD>Вопрос такой: как делаются сайты с одним управляющим файлом "Default.aspx"? Например: http://aspnetmania.com или http://gotdotnet.ru .
CD>Надо сделать такую же штуку. Чтобы по-умолчанию Default.aspx выводил данные из одной таблицы, с определённым параметром, например: Default.aspx?page=web, — выводил данные из другой таблицы совсем в другом виде и с другими контроллами, с возможностью редактировать и обновлять. Немного не понятна сама архитектура такого файла. Не делается же это всё блоками if...else или switch...case?
CD>Может кто-нибудь объяснит или ссылку на документацию кинет. Буду премного благодарен!
Смотри System.Web.UI.WebControls.Panel. делаешь два таких котрола, для каждого случая, и в них вставляешь все, что тебе надо для вывода.
Здравствуйте, darkwolf, Вы писали:
D>Смотри System.Web.UI.WebControls.Panel. делаешь два таких котрола, для каждого случая, и в них вставляешь все, что тебе надо для вывода.
D>и потом меняешь св-во visible,
D>И собственно все.
Представляешь себе размер такой странички для целого сайта?
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, darkwolf, Вы писали:
D>>Смотри System.Web.UI.WebControls.Panel. делаешь два таких котрола, для каждого случая, и в них вставляешь все, что тебе надо для вывода.
D>>и потом меняешь св-во visible,
D>>И собственно все.
AVK>Представляешь себе размер такой странички для целого сайта?
AVK>
А кому сейчас легко
А на самом деле, не весь же код будет передаваться клиенту, а только та панель, которая visible=true, и если не нравиться впрямую вставлять код, то можно использовать User Controls пример хорошо описан здесь. Так что полигон, где развернуться есть.
Здравствуйте, darkwolf, Вы писали:
D>А кому сейчас легко D>А на самом деле, не весь же код будет передаваться клиенту, а только та панель, которая visible=true, и если не нравиться впрямую вставлять код, то можно использовать User Controls пример хорошо описан
Все равно это фиговая идея. Так можно сделать еслим у тебя 2-3 панельки. А когда их полсотни то это превращается черти во что. Да и не понятно зачем так извращаться если есть простое решение?
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, darkwolf, Вы писали:
D>>А кому сейчас легко D>>А на самом деле, не весь же код будет передаваться клиенту, а только та панель, которая visible=true, и если не нравиться впрямую вставлять код, то можно использовать User Controls пример хорошо описан
AVK>Все равно это фиговая идея. Так можно сделать еслим у тебя 2-3 панельки. А когда их полсотни то это превращается черти во что. Да и не понятно зачем так извращаться если есть простое решение?
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, darkwolf, Вы писали:
AVK>>>Да
D>>Нда...Ну чтож, удачи.
AVK>А что такой пессимизм то? Удача мне не нужна — тот проект где это применялось давно закончен.
Просто не думаю, что делая проект на ASP.NET использовать метод Server.Execute() было-бы оптимальным решением.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, darkwolf, Вы писали:
D>>Просто не думаю, что делая проект на ASP.NET использовать метод Server.Execute() было-бы оптимальным решением.
G>Интересно было бы услышать, почему.
Потому что asp.net дает немного другие возможности, и философия его построена на использовании web contorls и др. классов .NET.
Здравствуйте, darkwolf, Вы писали:
D>Потому что asp.net дает немного другие возможности, и философия его построена на использовании web contorls и др. классов .NET.
A HTTPServer — это не класс .Net? И мне непонятно, чем же использование Server.Execute на различные aspx странички не вписывается в "философию" ASP.Net
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Crazy Diamond, Вы писали:
CD>>Может кто-нибудь объяснит или ссылку на документацию кинет. Буду премного благодарен!
AVK>Server.Execute() спасет отца русской демократии
А спасет ли?
В общем случае все нормально, то есть спасет, но вот что непонятно и не нравится:
В самом тексте HTML, который можно посмотреть в браузере в form action будет другая страница, но с теми же параметрами
HTTP запроса. Например, если со страницы Default.aspx переходим на Default.aspx?Page=2, а при анализе запроса допустим
проверяем, если а Page = 2, то Server.Execute(“Second.aspx”); При этом в поле адреса браузера показывается
Default.aspx?Page=2, а вот если посмотреть на HTML код, тогда form action почему-то = “Second.aspx?Page=2”. А не как ожидалось
Default.aspx?Page=2. Почему это произошло?
Здравствуйте, Crazy Diamond, Вы писали:
CD>Вопрос такой: как делаются сайты с одним управляющим файлом "Default.aspx"? Например: http://aspnetmania.com или http://gotdotnet.ru .
CD>Надо сделать такую же штуку. Чтобы по-умолчанию Default.aspx выводил данные из одной таблицы, с определённым параметром, например: Default.aspx?page=web, — выводил данные из другой таблицы совсем в другом виде и с другими контроллами, с возможностью редактировать и обновлять. Немного не понятна сама архитектура такого файла. Не делается же это всё блоками if...else или switch...case?
CD>Может кто-нибудь объяснит или ссылку на документацию кинет. Буду премного благодарен!
А не проще ли сделать так — пишешь несколько Web User Controlo'ов — каждый из них соответствует какой — либо страничке, например MyControl1 и MyControl2
в Default пишешь
switch(MyPage)
{
case 1 :
{
Controls.Add((UserControl)LoadControl(MyControl1.ascx));
break;
}
}
Здравствуйте, Gollum, Вы писали:
D>>Просто не думаю, что делая проект на ASP.NET использовать метод Server.Execute() было-бы оптимальным решением.
G>Интересно было бы услышать, почему.
Во первых использование Server.Execute (в контексте первоначального вопроса) не является достаточным условием. И используя его мы можем получить сразу несколько проблем:
Пример 1.
Возьмем за основу первоначальный вопрос. Есть HttpHandler для default.aspx мы вызываем Server.Execute на another.aspx. итог: в сгенерированной странице атрибут action для тега form будет указывать на another.aspx. (хотя нам потенциально нужен default.aspx). Естественно, что это легко обходится, но все-таки.
Пример 2.
Совсем простой случай: мы определяем HttpHandler для *.aspx расширения. Как нам выполнить после этого исходную страницу? Естественно, что Server.Execute здесь не помошник.
Итого можно сказать, что: Использование Server.Execute не всегда позволяет достичь нужных целей, вносит дополнительную избыточнось и подходить к его использованию нужно очень осторожно.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.