[英]Writing values to Razor Pages fields async
我在我的 Razor 页面中调用异步任务。 我可以在代码中的某些地方设置文本框的值,但在其他地方则不行。 我的评论显示了它在哪里起作用,在哪里不起作用。 如何在我的评论说我想要的地方写一个值到我的文本框?
<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.
}
发生这种情况是因为 OnGet 和 ConnectToPerson 在您执行异步操作后立即返回。 ConnectToPerson 返回一个 Task,这很好,但 OnGet 没有,因此调用它的代码无法知道它正在进行需要等待的异步操作。
看起来您可以将 OnGet 更改为 OnGetAsync 以执行异步操作,并返回一个任务。
public async Task OnGetAsync()
{
await ConnectToPerson();
//Set PersonID here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.