Метод LinkGenerator.GetUriByPage не работаетC#

Место общения программистов C#
Ответить
Anonymous
 Метод LinkGenerator.GetUriByPage не работает

Сообщение Anonymous »

Хорошо, я решил свою проблему, описанную ниже. Я удалил ограничение шаблона маршрута «альфа» и заменил его на «regex(^([0-9]+-){{5}}[0-9]+$)}», что помогло. Ограничение «альфа» принимает только буквенные символы, а не буквенно-цифровые. Моя строка состоит только из числовых значений с дефисами. Регулярное выражение сделало свое дело. Шаблон маршрута теперь выглядит так: @page "/account/login/{loginRequestToken:regex(^([0-9]+\-){{5}}[0-9]+$)}" и НЕ /account/login/{loginRequestToken:alpha.

Проблема, приведенная ниже, решена, как указано выше.

Я написал код для создания абсолютного URL-адреса с помощью класса LinkGenerator ASP.Net Core (NET 8.0), но по какой-то причине он не генерирует URL-адрес. Вот фрагмент кода в виде текста и изображения:

Код: Выделить всё

string loginRequestToken = createUserCommandResponse.LoginRequestToken;

var redirectToUrl = _linkGenerator.GetUriByPage(page: "/Account/Login",
handler: null,
values: new { loginRequestToken },
scheme: "https",
host: new HostString("localhost:7212"));
Изображение

Просматривая код с помощью отладчика, я вижу, что коллекция Endpoints генератора ссылок содержит страницу «/Account/Login» с RoutePattern «account/login/{loginRequestToken:alpha}». Параметры, переданные методу GetUriByPage, верны. См. изображение ниже, чтобы просмотреть результаты отладчика:
Изображение

Приведенный выше код работал еще несколько дней назад, но теперь по неизвестной причине перестал генерировать ссылку. Возвращается только нулевое значение. Я использую Razor Pages.
Есть идеи/предложения, как решить эту проблему? URL-адрес необходим для вставки в электронные письма, создаваемые приложением.
Я ожидал, что абсолютный URL-адрес будет выглядеть следующим образом: «https://localhost:7212/account/login/34333332- 54881777777-3385184744-464320895-2720260-7718198683/". Это одна из ссылок, генерируемых этим кодом, пока он не перестал работать. Теперь я получаю только нулевое значение.
Я трижды проверил все объявления кода и объявления шаблонов маршрутов. Страница входа украшена следующим шаблоном маршрута, соответствующим тому, что есть у генератора ссылок:

Код: Выделить всё

@page "/account/login/{loginRequestToken:alpha}"
Я также проверил все переменные с помощью отладчика и проверил их значения.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»