Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
Нужна полная поддержка ЧПУ mysite.ru/topic mysite.ru/razdel/topic mysite.ru/razdel/podrazdel/topic mysite.ru/razdel/podrazdel/group/topic Ссылки то и дело появляются новые, модерируются, переносятся, удаляются.., улавливается вот такой штукой Код: c# 1. 2. 3. 4. 5. Но хочется странного. Чтобы при этом работал Default роутинг: Код: c# 1. 2. 3. 4. 5. Выхода вижу два: Прописать Default впереди и для controller прописать вручную констрейты для всех существующих Controller-классов, минус — нужно поддерживать актуальность вручную. Второй, это через рефлекшн вытаскивать все классы из неймспейса перед запуском и конструировать Default роутинг программно. Есть ещё идеи? Может существуют более элегантные решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2013, 17:03 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
Третий способ: реврайтинг на лету по маске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2013, 17:12 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
МСУ, Реврайтинг хорошо, но метод должен знать все контроллеры в лицо, чтобы не нареврайтить лишнего, или я что-то не так понял? Проблемы с отбрасыванием .htm/.html нет, расширения для контента просто не используются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2013, 17:17 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, Реврайтинг хорошо, но метод должен знать все контроллеры в лицо, чтобы не нареврайтить лишнего, или я что-то не так понял? Реврайтингу не нужны контроллеры. Опиши в реврайте логику замены url, какая именно там у тебя логика - я без понятия. hVosttПроблемы с отбрасыванием .htm/.html нет, расширения для контента просто не используются. Это просто пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2013, 22:57 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
МСУ, с логикой, которая не требует знания контроллеров можно разобраться и в реврайтинге и в мапроутерах. да много где, хоть в фильтрах. проблема заключается в отделении ЧПУ от стандартной MVC маршрутизации. так как ЧПУ может быть абсолютно любым, никакая логика здесь не спасет и не поможет, нужно знать все контроллеры по именам, в лицо так сказать. вот я спросил про элегантный способ решения этой задачи. или я уж совсем непонятно объясняю задачу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 07:40 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
hVostt, еще раз: реврайтингу сиренево на твои контроллеры и их лица. Мы смотрим в BeginRequest на Request.Path, анализируем его и меняем на нужный. Если ты в состоянии написать кейс для своей ситуации, значит хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 10:10 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
авторЕсть ещё идеи? Может существуют более элегантные решения? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. не проверял, так что сам подправь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 10:39 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
эх... )) всё не то. вы товарищи, удивительно плоско мыслите. в вашем мире может все и может начинаться на какой-то конкретный Razdel, и скорее всего своим заказчикам вы навяжете свою систему, чтобы было проще кодить, но поставлена задача, поддерживать универсальный ЧПУ, ссыль может начинать строиться с ~/{Razdel}/... где {Razdel} — что угодно, квинтиллионы варинатов. допустим мы реврайтим все ЧПУ вот в такую ссылку: /Topic/{*FriendlyUrl} чтобы все ссылки обрабатывал один контроллер (Topic), но тогда зареврайтится и то, что не нужно, например /Catalog/ (он станет удивительно человечным /Topic/Catalog...), чтобы этого избежать поданобиться задавать констрейты. и вернемся к тому, с чего начали. в MVC реврайтинг вообще не впился ни в одно место, у него есть свой мощный маршрутизатор, зачем его советовать не пойму?? похоже придётся ковырять RouteMagic всем спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 10:52 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
hVosttНо хочется странного. Чтобы при этом работал Default роутинг: Я вот не пойму, если пропишут одинаковый, то приоритет будет у дефолтного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 11:05 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
hVostt, ны мы плоско мыслим, а ты линейно соображаешь :) Десятый раз повторяю, "квинтиллионы варинатов" не нужно описывать реврайтингом, достаточно написать маску (регекс), примерно такую же, как в маршрутах, и отрабатывать её. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 11:11 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
Парамон, Приоритет у того, кто идет первым. Наименование "Default" не играет роли. В общем при конкретном количестве контроллеров и областей проблемы нет. Прописываем вперед вот такое: Код: c# 1. 2. 3. 4. 5. 6. И ловим 4 контроллера, если нет, срабатывают правила которые следуют ниже. Проблема в том, что вручную не хочется поддерживать констрейты. Как-то так. Лень двигатель прогресса и все такое )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 11:13 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
МСУ, в упор не понимаю, что за волшебную маску ты имеешь в виду, которая отделит ЧПУ от обращения к контроллерам. если конечно все контроллеры запихать во что-то типа ~/Ahaha/{controller}/{action}/{id} ... и ловить этот урл по маске типа /Ahaha/.* — вообще шикарно. грубо и не профессионально. но обычно так и делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 11:16 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
hVosttчто за волшебную маску ты имеешь в виду МСУЕсли ты в состоянии написать кейс для своей ситуации, значит хорошо. Думай. Я тебе написал, что возможен еще 3 вариант из перечисленных тобой двух - реврайтинг. Как реврайтить - смотри, играйся сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 11:18 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
hVosttИ ловим 4 контроллера, если нет, срабатывают правила которые следуют ниже. И пользователь не получит ожидаемый результат по ссылке, или он должен знать констрейты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 11:42 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
автор...улавливается вот такой штукой Код: c# 1. 2. 3. 4. 5. 1. походу, одну траблу с таким роутом уже отгрёб ;) 2. +когда за этим роутом ты повторишь свою! систему обработки урлов (по сути уже! встроенную в FW), тогда и задумаешься насколько твоё решение было универсально-плоское... ПыСы: всё это уже где то когда то было... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 12:01 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
как-то так..., ~/все-про-деревья/дубы/желуди/самое-древнее-дерево ~/привет/пять-приветов/тут-с-приветом ... все это в базе хранится, и не может контролироваться на этапе разработки. есть ряд функциональных контроллеров и еще парочка специальных маршрутов, они перебивают любые ЧПУ, это by design вопрос только в том, как программно отделять зерна от плевел, а не каким из множества способов обработки ссылок воспользоваться, мапроутингом, или реврайтом или еще чем. как я уже сказал, прописывать вручную констрейты - вполне себе решение. только деревянное. я думал, может кто-то с подобной задачей сталкивался, и не обходил её с помощью специально составленных хитрых ссылок. по задаче все адресное пространство после имени домена должно быть свободно и строиться в соответствии с деревом ресурсов в приложении, дерево и названия для ссылок задают пользователи. нельзя подмешивать что-то в эти ссылки, чтобы они попали под действия каких-то регекспов. можно было бы настоять на этом, но это грубо и не профессионально. контроллеры с действиями должны быть в приоритете. не зависимо от ЧПУ. даже если попадется такой ЧПУ с адресом как у контроллера, должен сработать контроллер, а не ЧПУ. также можно что-то подмешивать в ссылочную базу контроллеров, чтобы работали какие-то волшебные регекспы. но это тоже грубо. хотя можно наверное и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 12:34 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
Парамон, Пользователь всего-то и ходит по ссылкам ) ничего он не знает ни про констрейты, ни про контроллеры. по крайне мере, не должен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 12:37 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
решение 1 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. === Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. решение 2 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. выбирай! как по мне так ты слегка запутался в стремлении к совершенству! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 12:49 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
hVostt по крайне мере, не должен Если не должен, то есть вероятность ввести ссылку зарезервированую под определенный контроллер. По идее, вариант /Ahaha/.* тут был бы в тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 12:49 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
автор... грубо и не профессионально . тело уже зудит от этого словосочетания! Код: c# 1. 2. пользователи как работали так и работают - нужный префикс к их урлам добавляешь ты сам, отсекая пользовательские урлы от своих системных!!! дальше работаешь с роутингом в соответствии с ген. указаниями MS!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 13:00 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
как-то так..., наверное вы правы, господа! нет в этом мире совершенства ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 13:14 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
Парамон, в постановке задачи принимали участие безумные сеошники ) понимаете что эт значит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 13:17 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 13:21 |
|
||
|
[ASP.NET MVC] Динамический роутинг
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, Спасибо за ссылку, но.... Уважаемые пользователи! Мы приносим свои извинения, но доступ к запрашиваемому ресурсу ограничен. Возможные причины ограничения доступа: Сетевой адрес, позволяющий идентифицировать сайт в сети «Интернет», включен в Единый Реестр доменных имен, указателей страниц сайтов сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено. Проверить наличие сетевого адреса в Едином реестре можно в разделе «Просмотр реестра» на сайте www.zapret-info.gov.ru. Доступ ограничен по решению суда или по иным основаниям, установленным законодательством Российской Федерации. это уже даже не смешно ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2013, 13:22 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38211003&tid=1358471]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 332ms |

| 0 / 0 |
