0 / 0 / 0
Регистрация: 18.02.2018
Сообщений: 7
|
|
1 | |
Дружественный URL для пользователя в адресной строке браузера18.02.2018, 15:16. Показов 2142. Ответов 11
Метки нет (Все метки)
Всем здравствуйте!
Возникла проблема при реализации дружественного URL для пользователя в адресной строке браузера. Перерыл много чего в Интернете - мало толку. Теперь надеюсь на вашу помощь! Постараюсь объяснить то, что хочется реализовать. Пусть на главной странице сайта (путь - SITE/) есть ссылка на разделы по пути SITE/Sections/. В разделах есть список этих разделов, а также есть возможность добавлять, редактировать и удалять разделы, находясь по данному пути в адресной строке браузера. В каждый из этих разделов можно войти по пути SITE/Sections/НазваниеРаздела, где так же можно добавлять, редактировать и удалять элементы, т.е. путь до элемента - SITE/Sections/НазваниеРаздела/НазваниеЭлемента Вопрос: как такое реализовать, если такое, конечно, возможно в MVC? Генерировать дружественное название раздел или элемента я могу. Маршруты мне здесь не помогли, ибо, к примеру, получив ссылку SITE/Sections/Create, я должен сделать метод Create в контроллере SectionsController, а получив ссылку SITE/Sections/НазваниеРаздела, я должен перейти, наверное, в метод Details в этом же контроллере, где вывожу список элементов. Я слаб в бекэнд - признаю! Может, такое вообще нельзя сделать. Заранее спасибо за адекватные ответы!
0
|
18.02.2018, 15:16 | |
Ответы с готовыми решениями:
11
Как изменить URL в адресной строке браузера Получить URL из адресной строки браузера S.coldsearch.com в адресной строке браузера Неправильный ввод в адресной строке браузера |
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|
18.02.2018, 15:40 | 2 |
0
|
0 / 0 / 0
Регистрация: 18.02.2018
Сообщений: 7
|
|
20.02.2018, 20:04 [ТС] | 3 |
Спасибо за ссылку, конечно же, но мне нужна не такая помощь. Я не знаю, как организовать всё в проекте.
Попробую ещё раз объяснить на другом примере. Пусть на главной странице сайта есть раздел "Языки", который уже есть при развертывании сайта. Путь к этому разделу - <Название Сайта>/Languages/ . В этом разделе есть список языков: например, "Английский" и "Немецкий". В этот список можно добавлять новые языки, так и редактировать или удалять старые. Допустим, мы вошли в язык "Английский". Путь к этому языку - <Название Сайта>/Languages/English/ . Внутри языка есть темы: к примеру, "Грамматика" и "Аудирование". Эти темы так же можно создавать, редактировать или удалять. Допустим, войдём в "Грамматика". Путь к теме - <Название Сайта>/Languages/English/Gramma/ . В теме есть список уроков: "Урок 1", "Урок 2" и т.д. Так же можно манипулировать уроками. Зайдём в первый урок - и путь будет <Название Сайта>/Languages/English/Gramma/Lesson1 . Вопрос: КОНКРЕТНО, как такое лучше организовать в MVC/Core? При создании какой-то части я могу генерировать SLUG. Причём SLUG могут совпадать у некоторых элементов ("Урок 1" => 1). Может, надо для каждого элемента хранить его полный путь, который собрать при создании элемента? Но тогда как заставить, имея полный адрес, заставить выполнить нужное действие (видимо, какой-нибудь метод "Details" для конкретного элемента)? Сложно!
0
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
||||||
20.02.2018, 22:46 | 4 | |||||
Ну так по ссылке выше все отлчно обьясняеться как реализовать то что вам нужно.
0
|
0 / 0 / 0
Регистрация: 18.02.2018
Сообщений: 7
|
|
20.02.2018, 23:21 [ТС] | 5 |
Хорошо. Спасибо за ответ. Вроде, понял, что, в итоге, нужен один контроллер для, по примеру, Languages, а уже в нём до чёрта методов действий для разных данных. И ещё, наверное, понял, что создание разных элементов надо засовывать в один контроллер, даже в Home. До этого хотел лепить к каждому элементу контроллер - и поэтому не мог понять, как организовать всё. Думаю, сейчас стало яснее. Но узнаю я об этом, когда что-то реализую. Ещё раз спасибо за прозрение!
0
|
0 / 0 / 0
Регистрация: 18.02.2018
Сообщений: 7
|
|
25.02.2018, 19:58 [ТС] | 6 |
Осталась ещё одна непонятка: как по-человечески сгенерировать ссылку на этот метод? Максимум, что у меня работает, - собирать URL строкой: href = "/part1" + "/part2" + ... , но это, кажется, дико. Уверен, есть другой рабочий способ, но для меня пока есть только один...
0
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
||||||
25.02.2018, 20:21 | 7 | |||||
0
|
0 / 0 / 0
Регистрация: 18.02.2018
Сообщений: 7
|
||||||
25.02.2018, 20:54 [ТС] | 8 | |||||
Эм... может, конечно, я не понимаю что-то, но если у нас контроллер с именем, например, languages и метод действия тот, который был выше, т.е.:
0
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
||||||
25.02.2018, 21:45 | 9 | |||||
oBOXPOH, ну посмотрите же ссылку которую я дал! Там есть другая перегрузка метода, которая принимает параметры
0
|
0 / 0 / 0
Регистрация: 18.02.2018
Сообщений: 7
|
|
25.02.2018, 22:58 [ТС] | 10 |
Извините, что кажусь тупым.
На самом деле, я, конечно, уже пробовал и такое: в вашем случае создастся ссылка /ControllerName/ActionName?strParam1=someValue&intParam2=0, но никак не /ControllerName/ActionName/someValue/0. Я пробовал сделать отдельный маршрут для такого шаблона с определённым названием контроллера, но к успешному результату не пришёл.
0
|
1453 / 845 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
||||||
26.02.2018, 17:07 | 11 | |||||
С чего это вдруг?
Если route будет /ControllerName/ActionName/{strParam1}/{intParam2} И в методе будут параметры
0
|
0 / 0 / 0
Регистрация: 18.02.2018
Сообщений: 7
|
||||||||||||||||
26.02.2018, 21:25 [ТС] | 12 | |||||||||||||||
Работает! Большое спасибо! Приятно осознавать, что всё ещё есть пока люди, готовые помочь и разобраться!
Правда... возникла новая проблема: при переходе по генерируемому пути все остальные ссылки "ломаются", т.е. для них неправильно генерируются ссылки. Думаю, это из-за созданного маршрута. Покажу основные куски кода программы: Добавление нового маршрута в MVC:
Генерация ссылки:
Но решить эту проблему, кажется, легко: переименовать либо контроллер Sections, либо статическое имя /Sections. Хотя хочется одного и того же имени...
0
|
26.02.2018, 21:25 | |
26.02.2018, 21:25 | |
Помогаю со студенческими работами здесь
12
Замена ссылок в адресной строке браузера кодировка кирилличиских букв в адресной строке браузера Как изменить адрес в адресной строке браузера? Иконка сайта в адресной строке браузера - не выводится Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |