我可以在Blazor服务中呼叫NavigationManager吗?>

问题描述 投票:0回答:1

我正在尝试创建一个错误页面服务,该服务将在被调用时确定发生了哪种类型的异常并正确处理代码。如果异常的类型为“重定向”,则应将用户发送到登录页面(出于测试目的,我仅使用主页“ /”页面)。

我正在尝试使用NavigationMangager.NavigateTo(“ /”),但每当到达该函数调用时,都会遇到Null点异常。我一直在寻找一种解决方案,但是我看到的只是在.razor文件中使用NavigationManager,而我正在尝试在.cs服务中完成此操作。目前无法做到这一点,还是我做错了什么?我在下面的文件“ ErrorProcessingService.cs”中包含了所有相关代码,我们将不胜感激。

using ToDoList.Pages;
using Microsoft.AspNetCore.Components;

namespace ToDoList.ExceptionHandler
{
    public class ErrorProcessingService
    {

        [Inject]
        protected NavigationManager NavigationManager {get; set;}

        public void processError(ErrorTypes.errorType et)
        {
            new ErrorTypes();
            switch(et)
            {
                case ErrorTypes.errorType.ignore:
                    //To Be Implemented
                    break;
                case ErrorTypes.errorType.popup:
                    //To Be Implemented
                    break;
                case ErrorTypes.errorType.redirect:
                    NavigationManager.NavigateTo("/");
                    break;
            }
        }
    }
}

我正在尝试创建一个错误页面服务,该服务将在被调用时确定发生了哪种类型的异常并正确处理代码。如果异常的类型为“重定向”,则应...

web razor dependency-injection webserver blazor
1个回答
0
投票

[尝试通过服务的构造函数使用经典方法并注入NavigationManager。

© www.soinside.com 2019 - 2024. All rights reserved.