我一直在玩ASP.NET MVC 4 beta
,我注意到两个控制器:一个(web api控制器)返回数据,另一个(默认控制器)返回视图。
我知道即使HTML
是JSON
或XML
这样的资源的一种表示形式,我个人也很高兴有一个单独的控制器只返回{ {1}}代表。
我想要实现的是拥有一个可以返回视图和数据的控制器。但我很困惑这是一个最好的选择,如果它是如何在没有太多代码的情况下实现这一点。
我是否可以扩展HTML
以使其返回视图和数据,或者我可以创建一个通用控制器,通过将请求传递给基于ApiController
的特定控制器类型。
我正在寻找你宝贵的建议。
答案 0 :(得分:3)
编写一个呈现HTML的格式化程序。
答案 1 :(得分:1)
官方Contact Manager example描述了如何使用格式化程序在单个控制器中的以下任何html / json / png / vcf中进行渲染。
如果您想在网址中明确请求,则必须添加有效路由。
config.Routes.MapHttpRoute(
"Default", // Route name
"{controller}/{id}/{ext}", // URL with parameters
new { id = RouteParameter.Optional, ext = RouteParameter.Optional } // Parameter defaults
);
但是如果你实际设置了“accept-type”标题,那么它应该可以开箱即用