C#剃刀任务<;字符串>;异步不工作
不幸的是,我正在处理一个C#Razor Web表单(不是MVC)Web应用程序 我得到了一个C#程序,其中包含一个由异步函数组成的类,我需要在cshtml页面上工作,但我不知道如何 下面的两个函数来自一个C#类,该类与C#Forms应用程序配合良好。(请注意,“TextBox1”被指定为文本) 我的问题是,我需要在cshtml页面上显示字符串变量“xml”(最好是在“textarea”元素中),而且我似乎无法调用showData()函数来检索该值 有人能帮忙吗C#剃刀任务<;字符串>;异步不工作,c#,razor,async-await,C#,Razor,Async Await,不幸的是,我正在处理一个C#Razor Web表单(不是MVC)Web应用程序 我得到了一个C#程序,其中包含一个由异步函数组成的类,我需要在cshtml页面上工作,但我不知道如何 下面的两个函数来自一个C#类,该类与C#Forms应用程序配合良好。(请注意,“TextBox1”被指定为文本) 我的问题是,我需要在cshtml页面上显示字符串变量“xml”(最好是在“textarea”元素中),而且我似乎无法调用showData()函数来检索该值 有人能帮忙吗 public static as
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 showData(字符串gID)
{
字符串xml=”“;
尝试
{
xml=wait WaitAsynchronouslyAsync(gID);
//原始代码将文本框设置为字符串值
//我需要修改这段代码,以便在cshtml页面上显示它
TextBox1.Text=xml;
}
捕获(HttpRequestException)
{
抛出新的ApplicationException(“无法连接到服务器”);
}
}
公共静态异步任务WaitAsynchronouslyAsync(字符串gID)
{
等待任务。延迟(10);
urlLink=“***自定义内部网URL***”;
....
....
**准备令牌/客户端响应url**
....
....
字符串结果=等待serviceClient.GetStringAsync(urlLink);
返回结果;
}
我试图绕过void
函数并访问Task
函数,但无法将任务
转换为字符串
值 首先,和
我试图绕过void函数并访问Task函数
或者只需将async void showData
更改为async Task showData
——只要避免async void
,就可以到达相同的位置
但我无法将任务转换为字符串值
您可以使用wait
执行此操作:
var xml = await WaitAsynchronouslyAsync(gID);
或:
您的调用函数需要标记为
async
,并返回Task
/Task
。是的,这确实会导致async
/wait
在您的代码库中“增长”,是的,这是正常的,也是必要的。这是一个非常广泛的问题。如何调用showData
方法?您可以使用AJAX调用它,也可以通过其他操作调用它。您需要删除“TextBox1.Text”,以使其可重复使用。您需要提供更多详细信息。是的……我多次明确表示需要删除TextBox1.Text
。问题是您无法调用void
方法并检索字符串。所以,不,用这段代码..我不能只使用AJAX。我不知道您需要更多的细节。我只是试图从这两个函数中检索字符串xml
。在告诉我你需要更多细节之前,请仔细阅读我的帖子。
await showData(gID);