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