Я переношу работающее приложение .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