[英]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.