我打开一个弹出窗口,显示Customers
列表。我正在使用DreamFactory进行所有CRUD操作。但是,DreamFactory将所有操作都作为async
操作进行操作,并且在加载部分视图时会出现错误:
HttpServerUtility.Execute在等待异步操作完成时被阻止。
我正在使用下面的代码来加载局部视图 -
@Html.Action("GetAddressListForPartial", "Customer", new { CustomerID = Model.CustomerID })
这是我的控制器方法
public async Task ActionResult CustomerList()
{
Models.Customers oCustomers = await new DataAccessLayer.DataAccess().GetCustomerList(databaseApi);
return View("CustomerList", oCustomers);
}
如果有任何解决方法可以处理这种情况,请告诉我。
由于
答案 0 :(得分:3)
您的问题不仅与DreamFactory有关。使用ASP.Net MVC 5及更早版本,当您的操作方法使用async
时,无法执行子操作。
子操作必须同步运行。如果您希望代码正常工作,则必须删除async
关键字,从而删除Task
。最后你必须有这个:
public ActionResult CustomerList()
{
Models.Customers oCustomers = new DataAccessLayer.DataAccess().GetCustomerList(databaseApi).Result;
return View("CustomerList", oCustomers);
}
使用ASP.Net MVC 6,ViewComponent
将允许子动作异步执行。