我有以下路线网址: -
www.domanname.com/subroute/GetInfo?param1=somestring¶m2=somestring
我在webapi中的功能如下: -
public class HomeController : ApiController
{
public object GetInfo(string param1,string param2)
{}
}
申请路线: -
[RoutePrefix("subroute")]
public class HomeController : ApiController
{
[Route("GetInfo?param1={param1:string}¶m2={param2:string}")]
public object GetInfo(string param1,string param2)
{}
}
但在申请上述网址后: -
www.domanname.com/subroute/GetInfo?param1=somestring¶m2=somestring
无法找到该网址
我该如何设计这条特定路线?
答案 0 :(得分:3)
您需要稍微修改路由,因为查询字符串通常不在属性路由中使用。它们倾向于用于内联路由参数。
print(output_layer.name)
另外
启用属性路由
要启用属性路由,请在配置期间调用
[RoutePrefix("subroute")] public class HomeController : ApiController { //Matches GET subroute/GetInfo?param1=somestring¶m2=somestring [HttpGet] [Route("GetInfo")] public IHttpActionResult GetInfo(string param1, string param2) { //... } }
。这种扩展方法是 在MapHttpAttributeRoutes
类中定义。
System.Web.Http.HttpConfigurationExtensions
答案 1 :(得分:2)
[RoutePrefix("subroute")]
public class HomeController : ApiController {
[HttpGet]
[Route("GetInfo/{param1}/{param2}")]
public IHttpActionResult GetInfo(string param1, string param2) {
//...
}
}
<强>调用强>
//Matches GET subroute/GetInfo/Hello/World