创建单个控制器以返回数据和视图

时间:2012-03-07 05:52:52

标签: asp.net-mvc asp.net-web-api

我一直在玩ASP.NET MVC 4 beta,我注意到两个控制器:一个(web api控制器)返回数据,另一个(默认控制器)返回视图。

我知道即使HTMLJSONXML这样的资源的一种表示形式,我个人也很高兴有一个单独的控制器只返回{ {1}}代表。

我想要实现的是拥有一个可以返回视图和数据的控制器。但我很困惑这是一个最好的选择,如果它是如何在没有太多代码的情况下实现这一点。

我是否可以扩展HTML以使其返回视图和数据,或者我可以创建一个通用控制器,通过将请求传递给基于ApiController的特定控制器类型。

我正在寻找你宝贵的建议。

2 个答案:

答案 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”标题,那么它应该可以开箱即用