如何让Web API使用返回的模型来渲染Razor视图?当接受标题(或.extension)设置时,只有
XML /
JSON?这是甚么可能吗?
如果要使用一组控制器来渲染HTML,而另一组用于JSON / XML,那么似乎很疯狂.
更新Darrel Miller已经写了一个ViewEngineFormatter for Razor,可能会做的伎俩,虽然还没有尝试过.
解决方法
我过去在StackOverflow上提出了一个类似的问题,因为我想做同样的事情.不过最终我终于找到了一个“Api”区域和一组控制器,以及一组用于该网站的MVC控制器.
事后看来其实并不是一件坏事.我发现我倾向于在每套控制器中做不同的事情.我的观点不仅仅是CRUD,而是倾向于包含额外的上下文数据,所以返回特定于该页面的视图模型是不错的.
我想如果我坚持我的目标是结合这两个,我可能会遇到过度复杂的控制器或用户体验不如最近的一样.所以虽然这不是对你的问题的直接回答,但是根据我的经验,不能这样做可能不是一件坏事.
相反,我最终得到了我的大多数控制器委托的丰富的构建器和命令集.这样我可以重用大部分的控制器逻辑,同时能够针对API与网络做特定的事情: