0
環境:ASP.NET MVC 5時,SQL Server異步方法掛在asp.net
這裏是我的方法是從數據庫返回當前用戶的配置文件:
public static ProfileModel getCurrentProfile(HttpContextBase ctx) {
User user = AccountController.getUser(ctx);
Task<ProfileModel> model = ProfileModel.getValue(user.UserID);
model.Wait();
return model.Result;
}
在執行時,model.Wait()
剛剛掛起向上。
我已經閱讀了幾篇關於死鎖的文章,並使用ConfigAwait(false)
來處理這種情況。但是,我需要調用這個方法的地方很多。我想如果我以正確的方式解決問題,我可能完全避免撥打ConfigAwait()
。
這裏是我如何用我的index.cshtml
文件的方法:
Members.Models.ProfileModel userModel = HomeController.getCurrentProfile(Context);
Html.RenderPartial("_PartialPublicProfile", userModel);
文件_PartialPublicProfile
需要ProfileModel
實例中傳遞是否有可能在Task<ProfileModel>
實例作爲參數傳遞?
或者,有沒有更好的方法來解決問題?問候。
ProfileModel.getValue在「掛起」時發生了什麼? – Will 2015-02-23 19:24:19
爲什麼在視圖中調用一個函數,而不是調用控制器動作中的函數,並將它作爲模型的一部分或視圖包傳遞給視圖?在動作中調用getCurrentProfile時會發生什麼? – 2015-02-23 19:32:41