当我尝试使用从MongoDb收到的数据返回视图时,我收到CS0029错误。
[HttpGet("{id}")]
public async Task<RecommendationModel> Get(string id)
{
return View ("RecommendationDetails", await _recommendationRepository.GetRecommendation(id));
}
当我返回await
(见下文)时,我得到了正确的JSON结果。
[HttpGet("{id}")]
public async Task<RecommendationModel> Get(string id)
{
return await _recommendationRepository.GetRecommendation(id));
}
任何人都能指出我正确的方向吗?
从控制器动作返回View()
返回ViewResult
,这是一个IActionResult
。所以你应该让你的方法返回一个Task<IActionResult>
:
public async Task<IActionResult> Get(string id)
{
var model = await _recommendationRepository.GetRecommendation(id);
return View("RecommendationDetails", model);
}
这与直接返回模型不同,后者导致MVC框架直接将模型作为JSON返回。但是在这里,你想要实际调用你的Razor视图,你只需将模型传递给视图,以便以某种方式呈现它。