Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523

Как создать абсолютный url

25.07.2017, 17:10. Показов 1786. Ответов 3
Метки url (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Пытаюсь создать абсолютный url, чтобы ссылка на восстановления пароля/подтверждения почты работала на любом сервере или хостинге.
Route config:
C#
1
2
3
4
5
6
7
8
9
10
11
public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 
            //Defaulf route
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
Так Я создаю url:
C#
1
2
3
string resetLink = "<a href='"
                           + Url.Action("SetNewPassword", "Home", new { TimeLink = userModel.TimeLink.ToString() }, Request.Url.Scheme)
                           + "'>Ссылка для восстановления пароля</a>";
И метод который должен по ссылке открыться и принять timeLink:
C#
1
public ActionResult SetNewPassword(string TimeLink)
Однако у Меня постоянный Null на создании Url. Скорее всего проблема в RouteConfig, но в чем конкретно, Я не понимаю. Может кто подсказать в чем проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2017, 17:10
Ответы с готовыми решениями:

Как скрыть параметры URL и передать их методом пост используя Url.Action()
Здравствуйте. У меня в представлении на сайте есть ссылка, которая формируется в методе действии контроллера MyView1 с помощью...

Возможно ли в методе server.transfer использовать абсолютный адрес URL и как?
возможно ли в методе server.transfer использовать абсолютный адрес URL и как?

Как перевести виртуальный путь в абсолютный?
есть строка вертуальный путь '/имя1/имя2/файл1.txt' нужно получить его абсолютный путь типа 'D: ame1 ame2файл1.txt'

3
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18242 / 14156 / 5366
Регистрация: 17.03.2014
Сообщений: 28,844
Записей в блоге: 1
25.07.2017, 18:00
Darkvoid, это особенность работы роутинга в ASP.NET MVC. На stackovoerflow есть подробная дискуссия на этот счет - https://stackoverflow.com/ques... -parameter - с разными способами решения.
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
30.07.2017, 11:48  [ТС]
OwenGlendower, у Меня не работает вообще никакой из этих методов. Задача создать абсолютный урл на контроллер с входным параметров типа string. Ведь путь к контроллеру не всегда будет localhost:1253/Home/SetNewPassword/MyStringValue. Я закину сайт на хостинг и адрес к контроллеру изменится, именно это и нужно обработать и учесть.

Я пробовал создавать кастомные роуты:
C#
1
2
3
4
5
routes.MapRoute("recoveryPass", "{controller}/SetNewPassword/{TimeLink}", new { controller = "Home", action = "SetNewPassword" });
            routes.MapRoute("recoveryPass", "{controller}/SetNewPassword/{TimeLink}", new { controller = "Home", action = "SetNewPassword", TimeLink = UrlParameter.Optional });
            routes.MapRoute("recoveryPass", "{controller}/SetNewPassword/{id}", new { controller = "Home", action = "SetNewPassword" });
            routes.MapRoute("recoveryPass", "{controller}/{action}/{id}", new { controller = "Home", action = "SetNewPassword", id = UrlParameter.Optional });
            routes.MapRoute("recoveryPass", "{controller}/{action}/{TimeLink}", new { controller = "Home", action = "SetNewPassword", TimeLink = UrlParameter.Optional });
И собственно делать в коде такой вызов:
C#
1
2
3
url = Url.RouteUrl("recoveryPass", new { TimeLink = userModel.TimeLink }, Request.Url.Scheme);
                    url = Url.RouteUrl("recoveryPass", new { TimeLink = userModel.TimeLink }, "http");
                    url = Url.Action("SetNewPassword","Home", new { TimeLink = userModel.TimeLink });
Прост выдает: Ссылка на объект не указывает на экземпляр объекта.

И хоть Ты тресни, просто тупо не работает!!! Что Я делаю не так?
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,946
31.07.2017, 09:36
Darkvoid, ошибка говорит о том, что ты пытаешься прочитать неинициализированные данные. Поставь точку останова, да посмотри какая из ссылок у тебя имеет значение null (userModel.TimeLink, Request.Url.Scheme), а там уже разбирайся почему так произошло и исправляй.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2017, 09:36
Помогаю со студенческими работами здесь

Как из asp получить полный URL и часть URL от вопросительного знака?
Господа подскажите как из asp получить полный URL и часть URL от вопросительного знака. На Javascript это сделать очень просто - ...

Как в jsoup получить абсолютный URL?
Приветствую всех! прошу помощи в получении ссылки, на некоторой странице с адресом напр.:...

Как создать папку, но чтоб в url ее не видели?
У меня такой вопрос стал. Вот учусь я создавать соц. сеть и делаю я наподобие VK. url станиц какого-либо пользователя там выглядит примерно...

Как программно создать Url ссылку в документе
Как программно создать url ссылку в документе открытом в клиенте Lotus Notes. Подскажите как программным путем создать url ссылку в...

Как создать, или изменить, url php-файла временно
PHP как создать, или изменить url, php файла временно суть проста например задача такая по почте пришло страшное письмо пройдите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru