2014-10-03 143 views
0

錯誤是在下面的代碼的行#5:無法隱式轉換類型 'System.Threading.Tasks.Task <System.Web.Mvc.ActionResult>' 到 'System.Web.Mvc.ActionResult'

public class FirstController : Controller{ 
    public async Task<ActionResult> Index() 
    { 
     OtherController OtherController = new OtherController(); 
     return OtherController.Index(); 
    } 
} 

然後OtherController

public class OtherController : Controller{ 
    public async Task<ActionResult> Index() 
    {    
     //Tasks... 
     //await... 
     return View(); 
    } 
} 

我嘗試這樣做,得到同樣的錯誤就行#5:

public class FirstController : Controller{ 
    public ActionResult Index() 
    { 
     OtherController OtherController = new OtherController(); 
     return OtherController.Index(); 
    } 
} 

我如何得到這個爲w掃?

+0

你自己的編譯器是要建立'任務<的ActionResult>'回報你 – 2014-10-03 00:46:35

+0

在什麼地方需要一個'await'呼叫身體@ DarrenKopp我不需要一個,它建議我有一個。我在'OtherController'中有一個,但沒有在'FirstController'中,但是我得到的錯誤是一個轉換問題,我把'FirstController'改成'async'的唯一原因是不會有轉換問題,但是'First'上的異步不是必需的,這是我在'First'發生錯誤之後嘗試的,而不是異步。 – 2014-10-03 00:48:26

+0

是的,你這樣做。例如。如果在第二個函數的'View View()'之前放置'等待Task.Delay(100)',編譯器不會再抱怨。第一個作品的原因是因爲IT返回'Task ' – 2014-10-03 00:50:52

回答

2

您需要await調用OtherController.Index();的結果,因爲此方法標記爲async。由於您正在等待該呼叫,因此您的FirstController.Index方法也需要標記爲async

在你FirstController.Index方法,你會因此有:

return await OtherController.Index(); 
相關問題