簡體   English   中英

C# 剃刀任務<string>異步不工作

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

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