我有两个MVC网站。站点1的控制器使用以下代码调用站点2
// If I remove this in the controller of site1, then execution continues....
var asdf = SharedTypes.Utilities.GetjsonStream("http://localhost:11541/UIDP/Details/a1?format=json");
string g = asdf.Result;
public class Utilities
{
public static async Task<string> GetjsonStream(string url)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(url);
string content = await response.Content.ReadAsStringAsync();
Debug.WriteLine("Content: " + content);
return content;
}
}
我可以直接浏览URL并查看JSON。但是从MVC中的对等网站下载JSON的正确方法是什么?
你或许应该把控制器方法为async
方法和用途await
,以避免死锁。
public async Task<ActionResult> MyActionAsync()
{
var asdf = SharedTypes.Utilities.GetjsonStream(someUrl);
string g = await asdf;
// return something
}
Microsoft的ASP.NET教程包括有关ASP.NET MVC
4中异步方法
的页面。
为什么find不是函数? 这是模型:
我有这个简单的例子给我的控制器,并没有像预期的那样工作 输出:开始、结束、中间 期望:开始、中间、结束
我想进行一个基于当前状态的API调用,但不能使setState函数作为异步函数工作。 给我错误: 类型为“”的参数(状态:只读)= 如果我在setState方法之外获取数据,它会起作用,但我害怕对过时的页码进行API调用:
在ASP.NET MVC中到处使用异步操作好吗? 关于可等待的方法:当我想查询数据库时(通过ef/nhibernate/other ORM)是否使用async/await关键字? 在一个操作方法中可以使用await关键字异步查询数据库多少次?
我需要在函数中运行各种步骤,但步骤必须按特定顺序运行。我尝试实现一个函数,如下所示: 控制台中的预期结果应该是1,2,3,但我得到了3,2,1。似乎忽略了参数。 编辑功能在上面的示例中仅用于模拟繁重的任务。在我的项目中,我不会使用它。事实上,我需要连接到一个数据库,然后在进入下一步之前重新格式化结果。即使包括,2也会在1之前登录。换句话说,空列表被传递到我的图形,因为没有考虑。以下是我当前的代码:
我试图理解为什么这段代码返回“Promise{pending}”。 当我通过reduceDirections()函数时,我可以看到我得到了想要的结果。但是当我(一行之后)时,我会改为“Promise pending” 很抱歉,我不理解promise和异步等待。我曾尝试在mdn上阅读和观看视频,但我不知道如何将它们显示的内容转移到这个问题上。提前感谢您的帮助!