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属性的非空值?