C S*_*per 6 .net c# asp.net-web-api asp.net-web-api-routing
我有以下路线网址:-
www.domanname.com/subroute/GetInfo?param1=somestring¶m2=somestring
Run Code Online (Sandbox Code Playgroud)
我在 webapi 中有如下功能:-
public class HomeController : ApiController
{
public object GetInfo(string param1,string param2)
{}
}
Run Code Online (Sandbox Code Playgroud)
申请路线:-
[RoutePrefix("subroute")]
public class HomeController : ApiController
{
[Route("GetInfo?param1={param1:string}¶m2={param2:string}")]
public object GetInfo(string param1,string param2)
{}
}
Run Code Online (Sandbox Code Playgroud)
但在申请上述网址后:-
public class HomeController : ApiController
{
public object GetInfo(string param1,string param2)
{}
}
Run Code Online (Sandbox Code Playgroud)
找不到那个网址
我该如何设计这条特定的路线?
您需要稍微修改一下路由,因为属性路由中通常不使用查询字符串。它们往往用于内联路由参数。
[RoutePrefix("subroute")]
public class HomeController : ApiController {
//Matches GET subroute/GetInfo?param1=somestring¶m2=somestring
[HttpGet]
[Route("GetInfo")]
public IHttpActionResult GetInfo(string param1, string param2) {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
还
启用属性路由
要启用属性路由,请
MapHttpAttributeRoutes在配置期间调用。该扩展方法是在System.Web.Http.HttpConfigurationExtensions类中定义的。
using System.Web.Http;
namespace WebApplication
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
// Other Web API configuration not shown.
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4374 次 |
| 最近记录: |