Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#剃刀任务<;字符串>;异步不工作_C#_Razor_Async Await - Fatal编程技术网

C#剃刀任务<;字符串>;异步不工作

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

不幸的是,我正在处理一个C#Razor Web表单(不是MVC)Web应用程序

我得到了一个C#程序,其中包含一个由异步函数组成的类,我需要在cshtml页面上工作,但我不知道如何

下面的两个函数来自一个C#类,该类与C#Forms应用程序配合良好。(请注意,“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 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);