在 asp.net 核心 3.1 异步编程中使用带有 bootstrap 4 的徽章
using badge with bootstrap 4 in asp.net core 3.1 asynchronous programing
我在 asp.net 核心 3.1 中使用了徽章,没有异步方法,这是我的服务代码
public int GetNotSeenContact()
{
return _context.Contacts.Where(s => s.Seen == false).Count();
}
这是作用域布局中的调用:
public int GetContactCont()
{
return _admin.GetNotSeenContact();
}
这是我使用它的地方:
int ConactBell = scope.GetContactCont();
这是我调用的 html 代码:
<span class="badge badge-pill badge-warning notification">@ConactBell</span>
这工作得很好,但是当我使用 Async 方法实现它时,它显示此异常而不是用户编号:
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[System.Int32,DIG.Core.Classes.PanelLayoutScope+<GetContactCont>d__3]
现在这些是我在服务中使用异步方法的代码:
public async Task<int> GetNotSeenContact()
{
return await _context.Contacts.Where(s => s.Seen == false).CountAsync();
}
这在我的范围内class:
public async Task<int> GetContactCont()
{
return await _admin.GetNotSeenContact();
}
这是我在 html 代码中使用它的代码:
@inject PanelLayoutScope scope
@{
Task<int> ConactBell = scope.GetContactCont();}
我的html代码:
<span class="badge badge-pill badge-warning notification">@ConactBell</span>
请给我最好的解决方案,并告诉我为什么在使用 Async 方法时会发生这种情况。非常感谢!
因为方法是异步的,可以尝试使用await.Change
@{
Task<int> ConactBell = scope.GetContactCont();}
到
@{
var ConactBell =await scope.GetContactCont();}
结果:
我在 asp.net 核心 3.1 中使用了徽章,没有异步方法,这是我的服务代码
public int GetNotSeenContact()
{
return _context.Contacts.Where(s => s.Seen == false).Count();
}
这是作用域布局中的调用:
public int GetContactCont()
{
return _admin.GetNotSeenContact();
}
这是我使用它的地方:
int ConactBell = scope.GetContactCont();
这是我调用的 html 代码:
<span class="badge badge-pill badge-warning notification">@ConactBell</span>
这工作得很好,但是当我使用 Async 方法实现它时,它显示此异常而不是用户编号:
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[System.Int32,DIG.Core.Classes.PanelLayoutScope+<GetContactCont>d__3]
现在这些是我在服务中使用异步方法的代码:
public async Task<int> GetNotSeenContact()
{
return await _context.Contacts.Where(s => s.Seen == false).CountAsync();
}
这在我的范围内class:
public async Task<int> GetContactCont()
{
return await _admin.GetNotSeenContact();
}
这是我在 html 代码中使用它的代码:
@inject PanelLayoutScope scope
@{
Task<int> ConactBell = scope.GetContactCont();}
我的html代码:
<span class="badge badge-pill badge-warning notification">@ConactBell</span>
请给我最好的解决方案,并告诉我为什么在使用 Async 方法时会发生这种情况。非常感谢!
因为方法是异步的,可以尝试使用await.Change
@{
Task<int> ConactBell = scope.GetContactCont();}
到
@{
var ConactBell =await scope.GetContactCont();}
结果: