blazor class文件中如何重定向页面

如果在类文件中使用Navigatiomanager时出现空值异常

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;
    }
syzr12345 回答:blazor class文件中如何重定向页面

重构代码,以免将逻辑与页面导航混在一起。就是有一个班级将提供“员工休息时间”的计算。然后在可插入NavigationManager的可视页面中使用该类,并在出现以下错误时进行页面导航:

@page "/"
@inject NavigationManager navigationManager; // inject an instance of NavigationManager

<h1>Time-off by staff</h1>

Some page content.....

<button @onclick="GetTimeOffByStaff">Get time off by staff</button>

@code {
    void GetTimeOffByStaff()
    {
        try
        {
            TimeOffLogic logic = new TimeOffLogic();    // this will be your logic class

            var timeOff = logic.GetTimeOffbyStaff(id);
        }
        catch (Exception ex)
        {
            ExceptionLogging.SendErrorToText(ex,"1");
            navigationManager.NavigateTo("/PagenotFound");      // use NavigationManager
        }

        // do something with timeOff
    }
}
本文链接:https://www.f2er.com/3023986.html

大家都在问