Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在blazor类文件中重定向页面_C#_Blazor_Asp.net Core 3.0_Blazor Server Side - Fatal编程技术网

C# 如何在blazor类文件中重定向页面

C# 如何在blazor类文件中重定向页面,c#,blazor,asp.net-core-3.0,blazor-server-side,C#,Blazor,Asp.net Core 3.0,Blazor Server Side,如果使用导航管理器,则在类文件中使用时出现空值异常 NavigationManager navigationManager; public ICollection<TimeOff> GetTimeOffbyStaff(int id) { ICollection<TimeOff> timeOff = new List<TimeOff>(); try { timeOff = labOrgDbConte

如果使用导航管理器,则在类文件中使用时出现空值异常

NavigationManager navigationManager;
  public ICollection<TimeOff> GetTimeOffbyStaff(int id)
    {
      ICollection<TimeOff> timeOff = new List<TimeOff>();
      try
      {
        timeOff = labOrgDbContext.TimeOff.Include(x => x.Technologist).Where(x => x.TechnologistId == id && x.FromDate >= (DateTime.Now.AddYears(-1)).Date && x.IsDeleted != true).OrderByDescending(x => x.RowInsertOn).ToList();
      }
      catch (Exception ex)
      {
        ExceptionLogging.SendErrorToText(ex, "1");
        navigationManager.NavigateTo("/PagenotFound");
        throw ex;
      }
      return timeOff;
    }
NavigationManager导航管理器;
公共ICollection GetTimeOffbyStaff(int id)
{
ICollection timeOff=新列表();
尝试
{
timeOff=labOrgDbContext.timeOff.Include(x=>x.Technologist).Where(x=>x.TechnologistId==id&&x.FromDate>=(DateTime.Now.AddYears(-1)).Date&&x.IsDeleted!=true).OrderByDescending(x=>x.RowInsertOn.ToList();
}
捕获(例外情况除外)
{
例外记录。发送错误文本(例如,“1”);
navigationManager.NavigateTo(“/PagenotFound”);
掷骰子;
}
返回时间;
}

重构代码,避免将逻辑与页面导航混为一谈。也就是说,有一个课程将提供“员工休假”计算。然后在将注入
NavigationManager
的可视页面中使用该类,并在出现如下错误时执行页面导航:

@page/“
@注入NavigationManager NavigationManager;//插入NavigationManager的实例
员工休假
一些页面内容。。。。。
员工请假
@代码{
void GetTimeOffByStaff()
{
尝试
{
TimeOffLogic logic=new TimeOffLogic();//这将是您的逻辑类
var timeOff=logic.GetTimeOffbyStaff(id);
}
捕获(例外情况除外)
{
例外记录。发送错误文本(例如,“1”);
navigationManager.NavigateTo(“/PagenotFound”);//使用navigationManager
}
//利用休息时间做点什么
}
}

这是否回答了您的问题?另请阅读:我不理解你的句子-你能改写它吗?对象引用未设置为对象的实例。此行“navigationManager.NavigateTo(“/PagenotFound”);”上出现错误查看
为什么
对象为
null
-线索…阅读我在依赖项注入上的链接感谢实际上我想重定向,而异常发生在我的类方法中,因为我尝试在类中而不是在类中执行component@novfalhaq然后只需将
navigationManager
实例传递给
TimeOffLogic
构造函数,然后调用它的
NavigateTo()
方法。这也可以。NullReferenceException:对象引用未设置为对象的实例。专用只读NavigationManager NavigationManager;public TaskSchedulerService(NavigationManager NavigationManager,){this.NavigationManager=NavigationManager;}@novfalhaq如何/何时注入NavigatorManager?您是否使用了与上面示例中相同的代码,即“[Inject]public NavigationManager NavigationManager{get;set;}”?如果是,如果在调用TaskSchedulerService构造函数时设置断点,是否会看到navigationManager属性的非空值?