当我尝试使用从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));
}
有人能指出我正确的方向吗?
答案 0 :(得分:2)
从控制器操作中返回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视图,而只是将模型传递到视图,以便以某种方式呈现它。