Обновление Blazor с .NET 6 до .NET 8 – NavigateTo не работаетC#

Место общения программистов C#
Anonymous
Обновление Blazor с .NET 6 до .NET 8 – NavigateTo не работает

Сообщение Anonymous »

Я переношу работающее приложение .NET 6 на .NET 8.
Это был полностью проект WebAssembly. Я сохранил это, но использую рендеринг домашней страницы на стороне сервера, чтобы улучшить взаимодействие с пользователем.
Я хочу, чтобы пользователь щелкал объект на странице, входил в систему и затем возвращался. на эту страницу, где используется локальное хранилище для запоминания объекта, оно сортирует его и отображает и т. д.
Поэтому мне нужно перенаправить на страницу входа с URL-адресом возврата "/" так что это не так уж сложно, но он не работает и переходит в состояние «Не найден».
Код для этого устанавливается или вызывается в методе «OnAfterRender», поэтому я почти уверен, что это так. локально для браузера.
My Routes.Razor выглядит следующим образом:











В моем App.razor есть


со следующим кодом:
public partial class App
{
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;

private IComponentRenderMode? RenderModeForPage => HttpContext.Request.Path.StartsWithSegments("/Account")
? null
: RenderMode.InteractiveWebAssembly;
}

Это гарантирует, что код учетной записи останется на стороне сервера из кода шаблона MS.
Я уверен, что упускаю что-то глупое. маршрутизация. Я тоже это пробовал:
string reg = _navigationManager.GetUriWithQueryParameters("Account/Login", new Dictionary { ["ReturnUrl"] = "/" });
_navigationManager.NavigateTo(reg);

... и если я прерву строку NavigateTo, значение reg станет нулевым.
Чтобы попытаться упростить и инкапсулируйте его дальше. Я взял кнопку входа в систему и изменил ее (исходный код закомментирован):


@* Login/Sign Up *@
Login/Sign Up



public void Login()
{
_navigationManager.NavigateTo("Account/Login");
}

С кнопкой работает нормально как ссылка, не обнаруживается при попытке маршрутизации с помощью NavigateTo...
Что я здесь отсутствует? Заранее спасибо.
ИЗМЕНИТЬ
Маршрут для страницы входа соответствует коду шаблона MS с @ директива страницы вверху:
@page "/Account/Login"

ДАЛЬНЕЙШЕЕ ИЗМЕНЕНИЕ
Мой App.razor выглядит следующим образом:








GOOGLE STUFF




GOOGLE FONTS STUFF
WMAP



LINKS TO OTHER SCRIPTS


LINKS TO STYLESHEETS





META (FACEBOOK/INSTA) Code









PAYMENT PROVIDER SCRIPTS










public partial class App
{

[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;

private IComponentRenderMode? RenderModeForPage => HttpContext.Request.Path.StartsWithSegments("/Account")
? null
: RenderMode.InteractiveWebAssembly;

}


Подробнее здесь: https://stackoverflow.com/questions/787 ... ot-working

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