В нашем проекте у нас были только синхронные методы, поэтому на данный момент мы решили ввести несколько асинхронных.
Но, похоже, существуют некоторые проблемы с использованием асинхронных действий в представлении ...
Ниже синхронное действие "HomePartial" было преобразовано в асинхронное "HomePartialAsync" (поэтому синхронных действий не осталось).
следующий код
@{
Layout = "~/Views/Shared/_LayoutPortal.cshtml";
}
<div class="col-lg-19 col-md-18 col-sm-24 col-xs-24">
<div class="row">
<div class="col-xs-24">
<div class="row">
@{Html.RenderAction<HomeController>(h => h.HomePartialAsync());}
@Html.Partial("Partials/_OffersPassion")
</div>
</div>
</div>
</div>
на самом деле выдает ошибку
HttpServerUtility.Execute заблокирован во время ожидания асинхронного
операция завершена.
Действие контроллера My Home
[ActionName("HomePartial")]
public async System.Threading.Tasks.Task<ActionResult> HomePartialAsync()
{
return WebConfigManager.IsCMSactivated ? await GetHomeManifCMSBlocAsync() : await GetHomeManifBlocAsync();
}
Я обновил его после предложения @JamesS, как это
[ActionName("HomePartial")]
public ActionResult HomePartial()
{
var asyncResult = WebConfigManager.IsCMSactivated ? GetHomeManifCMSBlocAsync() : GetHomeManifBlocAsync();
var result = Task.Run(() => asyncResult).Result;
return result;
}
но поток, похоже, остается заблокированным, ожидая "Результат" ....