C# 如何使用async调用方法并显示数据?当我试着去做的时候,它什么也做不了
我有一个方法,我在读一些关于一个人的细节。有点像大师级的细节。 该操作在popover中调用。我需要使调用成为一个异步的方法。 当我使用ajax参数async:true调用该方法时,它失败了。它什么也不做,不显示popover,也不在控制台中抛出任何异常。 这是我的代码: C# 当控制器中没有async、Task和Wait时,以及当async设置为false时,都可以工作。此外,如果我在控制器上保留async Task和Wait,并将ajax async设置为false,也可以工作。 如何解决这个问题C# 如何使用async调用方法并显示数据?当我试着去做的时候,它什么也做不了,c#,ajax,asp.net-mvc,asynchronous,async-await,C#,Ajax,Asp.net Mvc,Asynchronous,Async Await,我有一个方法,我在读一些关于一个人的细节。有点像大师级的细节。 该操作在popover中调用。我需要使调用成为一个异步的方法。 当我使用ajax参数async:true调用该方法时,它失败了。它什么也不做,不显示popover,也不在控制台中抛出任何异常。 这是我的代码: C# 当控制器中没有async、Task和Wait时,以及当async设置为false时,都可以工作。此外,如果我在控制器上保留async Task和Wait,并将ajax async设置为false,也可以工作。 如何解决这
$.ajax()
调用本质上是异步的,默认为true,因此不需要添加async:true
数据:{id:id}
,并从url:
中删除+id
JsonResult
替换async Task
(需要使用System.Web.Mvc
)[HttpPost]
公共JsonResult个人详细信息(int-id){…}var model=\u context.Person.Where(e=>e.Person==id&&e.Age>5.ToList()代码>
returnjson(model)代码>不返回视图
console.log(数据)
在$.ajax.success函数中查看返回数据问题是我的代码逻辑。在调用调用ajax的方法之前,我已经设置了数据。如果调试控制器,它是否会命中控制器并运行所有代码?您在ajax方法中使用了
'post'
,但我没有在C#controller方法上方看到[HttpPost]
属性,除非您在示例中忽略了。我添加了httpost,它的作用是一样的。当我调试时,什么都没有发生。就像我从来没有点击过按钮一样。如果调试时没有点击控制器操作,请检查路由配置是否正确。打开浏览器网络选项卡,检查此特定请求的状态……但是如果我没有指定异步任务并在c#后端使用wait,那么异步读取是如何实现的呢?
public async Task<ActionResult> PersonDetails(int id)
{
var model = await _context.Person.Where(e => e.Person == id && e.Age > 5).ToListAsync();
return View(model);
}
$.ajax({
url: "/Home/PersonDetails/" + id,
method: "post",
async: true,
//data: { id: id },
success: function (data) {
set_data = data;
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR.statusText + textStatus + errorThrown);
}
});