我正在调用我的剃刀页面中的异步任务。我可以在代码中的某些地方设置文本框的值,但在其他地方不能。我的评论显示了它在哪里起作用和不起作用。我怎样才能在我的注释说我想要的地方写一个值给我的文本框呢?
<label for="PersonID">PersonID:</label>
<input asp-for="@Model.PersonID" type="text" value="@Model.PersonID" />
public string PersonID { get; set; }
public async void OnGet()
{
// Do some stuff here
//Setting PersonID here places the value on my page
await ConnectToPerson();
//Setting PersonID here DOES NOT place the value on my page
}
public async Task ConnectToPerson()
{
// Do some stuff here
//Setting PersonID here places the value on my page
await client.Connect();
//Setting PersonID here DOES NOT place the value on my page and this is where I want to set it as client will have values returned.
}
发布于 2021-05-12 16:38:07
之所以会发生这种情况,是因为只要执行异步操作,OnGet和ConnectToPerson就会返回。ConnectToPerson返回一个任务,这很好,但是OnGet没有,所以调用它的代码无法知道它正在进行一个需要等待的异步操作。
您可以将OnGet更改为OnGetAsync以执行异步操作,从而返回一个looks like。
public async Task OnGetAsync()
{
await ConnectToPerson();
//Set PersonID here
}
https://stackoverflow.com/questions/67507301
复制相似问题