Dreamfactory - MVC PartialView问题

时间:2015-11-22 16:58:01

标签: asp.net-mvc

我打开一个弹出窗口,显示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);
}

如果有任何解决方法可以处理这种情况,请告诉我。

由于

1 个答案:

答案 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将允许子动作异步执行。