我开始学习Razor Pages的工作方式,教程中提到了OnGet和OnPost,还提到了我们也有异步选项:OnGetAsync和OnPostAsync。但是他们没有提到它们是如何工作的,显然它们是异步的,但是如何?他们使用AJAX吗?
HTTP GET
{
"title": "example",
"status": 1
"status_detail": {
"id": 1,
"name": "hello"
}
}
答案 0 :(得分:2)
OnGet
和OnGetAsync
之间没有实际差异。 OnGetAsync
只是包含异步代码的方法的命名约定,该异步代码应在发出GET请求时执行。您可以省略后缀Async
,但仍使方法异步:
public async Task OnGet()
{
...
await ....
...
}
异步方法是在执行过程中释放线程的方法,以便可以将其用于其他用途,直到执行结果可用为止。您可以在此处详细了解异步方法的工作原理:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/#BKMK_WhatHappensUnderstandinganAsyncMethod
同一剃刀页面中不能有Onget
和 OnGetAsync
处理程序。该框架认为它们是相同的。