【发布时间】:2021-11-09 14:40:26
【问题描述】:
我有一种方法可以读取一个人的一些详细信息。类似于主细节的东西。 该操作在弹出框内调用。我需要使调用异步的方法。 当我使用 ajax 参数 async:true 调用该方法时,它失败了。它什么也不做,它不显示弹出窗口,也不在控制台中抛出任何异常。 这是我的代码: C#
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 调用:
$.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);
}
});
当控制器中没有异步、任务和等待并且异步设置为 false 时有效。此外,如果我在控制器上保留异步任务和等待并将 ajax 异步设置为 false,则它可以工作。 如何解决这个问题?
【问题讨论】:
-
如果你调试你的控制器,它会命中控制器并运行所有代码吗?
-
您在 ajax 方法中使用了
'post',但我在 C# 控制器方法上方看不到[HttpPost]属性,除非您从示例中省略。 -
我已经添加了httpost,它的作用是一样的。当我调试时没有任何反应。就像我从未点击过按钮一样。
-
如果您在调试时没有触发控制器操作,请检查您的路由是否配置正确。
-
打开您的浏览器网络选项卡并检查此特定请求的状态...
标签: c# ajax asp.net-mvc asynchronous async-await