asp.net mvc web api帮助页面没有填充给定的路由

时间:2017-09-01 13:11:41

标签: c# asp.net-web-api asp.net-web-api2 asp.net-web-api-routing asp.net-web-api-helppages

我在为web api控制器填充帮助页面时遇到了困难。控制器中唯一的方法如下:

public HttpResponseMessage Get(string p1,string p2= "blend", string p3 = "blend")

该方法显示在带有签名的帮助页面中:

GET api/mycontroller?p1={p1}&p2={p2}&p3={p3}

但是我的评论都没有流向帮助页面。对于其他简单控制器Get(string id),帮助页面可以正常工作。

我尝试在WebApiConfig.cs上添加以下内容

config.Routes.MapHttpRoute( name: "mycontroller", routeTemplate: "api/mycontroller/{p1}/{p2}/{p3}", defaults: new { p1 = RouteParameter.Optional, p2 = RouteParameter.Optional, p3 = RouteParameter.Optional
} );

但是,帮助页面仍然没有填写为摘要,参数描述或返回而写的注释。

1 个答案:

答案 0 :(得分:1)

我不会尝试使用attribute routing中的基于约定的路由解决此问题。

首先在WebApiConfig.cs中启用它

config.MapHttpAttributeRoutes();

然后使用路径

对控制器中的方法进行解析
[HttpGet]
[Route("api/mycontroller")]
public HttpResponseMessage Get1(string p1, string p2= "blend", string p3 = "blend")
//Call this api/mycontroller?p1=valueOne&p2=valueTwo&p3=valueThree

[HttpGet]
[Route("api/mycontroller/{p1}/p2/p3")]
public HttpResponseMessage Get2(string p1,string p2= "blend", string p3 = "blend")
//Call this api/mycontroller/valueOne/valueTwo/valueThree