[英]C# Razor Task<string> async not working
所以不幸的是,我正在處理一個 C# Razor Web 表單(非 MVC)Web 應用程序。
我得到了一個 C# 程序,其中包含一個由異步函數組成的類,我需要在 cshtml 頁面上工作,但我不知道如何...
下面的兩個函數來自一個 C# 類,該類與 C# 表單應用程序配合得很好。 (注意“TextBox1”被分配了文本)。
我的問題是我需要在 cshtml 頁面上顯示字符串變量“xml”(最好在“textarea”元素中)並且我似乎無法調用 showData() 函數來檢索值
任何人都可以幫忙嗎?
public static async void showData(string gID)
{
string xml = "";
try
{
xml = await WaitAsynchronouslyAsync(gID);
//The original code set a TEXTBOX to the string value
//I need to revise this code so that I can display it on a cshtml page
TextBox1.Text = xml;
}
catch (HttpRequestException)
{
throw new ApplicationException("Could not connect to the server");
}
}
public static async Task<string> WaitAsynchronouslyAsync(string gID)
{
await Task.Delay(10);
urlLink = "*** A custom Intranet URL ***";
....
....
** preparing a Token/Client response url **
....
....
string result = await serviceClient.GetStringAsync(urlLink);
return result;
}
我試圖繞過void
函數並訪問Task<string>
函數,但我無法將Task<string>
轉換為string
值。
async void
就很難處理,在 ASP.NET 上更是如此。
我試圖繞過 void 函數並訪問 Task 函數
或者只是將async void showData
更改為async Task showData
- 只要您避免async void
,您就會到達同一個地方。
但我無法將 Task 轉換為字符串值。
你用await
做到這一點:
var xml = await WaitAsynchronouslyAsync(gID);
或者:
await showData(gID);
您的調用函數需要被標記為async
並返回Task
/ Task<T>
。 是的,這確實會導致async
/ await
在您的代碼庫中“增長”,是的,這既正常又必要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.