簡體   English   中英

將值寫入 Razor 頁面字段異步

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM