WebApi HelpPage HttpResponseMessage SetActualResponseType

时间:2013-12-19 13:40:04

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

我正在使用MVC4项目中的WebApi帮助页面。

根据以下链接,http://blogs.msdn.com/b/yaohuang1/archive/2012/10/13/asp-net-web-api-help-page-part-2-providing-custom-samples-on-the-help-page.aspx我一直在设置HelpPageConfig来设置实际的响应类型。

我有一个控制器,上面有两个get方法

/// <summary>
/// Get the list of plans for a specified portfolio
/// </summary>
/// <param name="portfolioIdentifier">Portfolio Identifier (guid)</param>
/// <returns>
/// Returns a list of <see cref="RestDTOs.Plan"/> Plan objects
/// </returns>
    public HttpResponseMessage Get(Guid portfolioIdentifier)
    {
    }

/// <summary>
/// Get full plan details.
/// </summary>
/// <param name="planIdentifier">Plan Identifier (guid)</param>
/// <returns>
/// Returns the <see cref="RestDTOs.Plan"/> Plan object
/// </returns>
[HttpGet]
    public HttpResponseMessage Detail(Guid planIdentifier)
    {
    }

在HelpPageConfig.cs中,我添加了以下内容以尝试设置ResponseBody格式示例

config.SetActualResponseType(typeof(Plan), "Plan", "GET");

这在Get方法上运行得很好,但是在Detail方法

上没有产生任何东西

我需要将哪些内容添加到HelpPageConfig中,以便web api帮助将为Detail方法提取并生成样本

2 个答案:

答案 0 :(得分:5)

MVC 5有一个内置属性来设置响应类型。

更多信息: http://thesoftwaredudeblog.wordpress.com/2014/01/05/webapi-2-helppage-using-responsetype-attribute-instead-of-setactualresponsetype/

只需使用:

    ResponseType(typeof([Your_Class]))]

答案 1 :(得分:3)

尝试config.SetActualResponseType(typeof(Plan), "Plan", "Detail"); ...这里的第二个参数是期待一个动作名称......我看到你正在使用Web API 1,所以只有FYI ...在Web API 2中,有一个名为ResponseType的属性你可以用它来装饰一个动作来描述给定动作的实际响应类型..