public async Task<JsonResult> getEmployee(int roleId)
{
var emp = await db.tbl_employee.Where(e => e.roleId == roleId).ToListAsync();
return Json(emp, JsonRequestBehavior.AllowGet);
}
此操作返回未定义,但是如果我删除这样的等待
public async Task<JsonResult> getEmployee(int roleId)
{
var emp = db.tbl_employee.Where(e => e.roleId == roleId).ToListAsync();
return Json(emp, JsonRequestBehavior.AllowGet);
}
它将返回我想要的结果。我也尝试过从https://stackoverflow.com/a/25899982/9367841
public async Task<JsonResult> getEmployee(int roleId)
{
var emp = await db.tbl_employee.Where(e => e.roleId == roleId).ToListAsync().ConfigureAwait(false);
return Json(emp, JsonRequestBehavior.AllowGet);
}
但它不起作用。
答案 0 :(得分:1)
我终于解决了。
如果您正在使用此操作
public async Task<JsonResult> getEmployee(int roleId)
{
var emp = db.tbl_employee.Where(e => e.roleId == roleId).ToListAsync();
return Json(emp, JsonRequestBehavior.AllowGet);
}
///我正在使用angularjs从服务器获取数据
$http.post("../controller/getEmployee", { roleId: id }).then(function (r) {
console.log(r.data);
})
结果将是这样(来自console.log(r.data))
{Result: Array(1), Id: 50, Exception: null, Status: 5, IsCanceled: false, …}
AsyncState: null
CreationOptions: 0
Exception: null
Id: 50
IsCanceled: false
IsCompleted: true
IsFaulted: false
Result: [{…}]
Status: 5
__proto__: Object
获取员工列表。代替使用r.data,而使用r.data [“ Result”]。
$http.post("../controller/getEmployee", { roleId: id }).then(function (r) {
$scope.list = r.data["Result"];
})
但是,如果您正在使用此操作
public async Task<JsonResult> getEmployee(int roleId)
{
var emp = await db.tbl_employee.Where(e => e.roleId == roleId).ToListAsync();
return Json(emp, JsonRequestBehavior.AllowGet);
}
您可以使用r.data获取员工列表。
$http.post("../controller/getEmployee", { roleId: id }).then(function (r) {
$scope.list = r.data;
})
很抱歉,我没有显示如何获取数据,问题出在这里,而不是在服务器端。
答案 1 :(得分:0)
我想我已经看过这个了。你可以尝试以下吗?
public JsonResult getEmployee(int roleId)
{
var emp = await db.tbl_employee.Where(e => e.roleId == roleId).ToListAsync();
return Json(emp, JsonRequestBehavior.AllowGet);
}
ToListAsync
返回Task<>
修改,请参见此处:Is it correct if i am using await + ToListAsync() over IQueryable which is not define as a task