查询字符串的属性路由
Attribute Routing for querystring
我有以下路线 URL:-
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)
{}
}
但是在URL上面申请之后:-
www.domanname.com/subroute/GetInfo?param1=somestring¶m2=somestring
找不到 URL
我该如何设计这条特定的路线?
您需要稍微修改一下路由,因为查询字符串通常不用于属性路由。它们往往用于内联路由参数。
[RoutePrefix("subroute")]
public class HomeController : ApiController {
//Matches GET subroute/GetInfo?param1=somestring¶m2=somestring
[HttpGet]
[Route("GetInfo")]
public IHttpActionResult GetInfo(string param1, string param2) {
//...
}
}
还有
Enabling Attribute Routing
To enable attribute routing, call MapHttpAttributeRoutes
during configuration. This extension method is
defined in the System.Web.Http.HttpConfigurationExtensions
class.
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.
}
}
}
[RoutePrefix("subroute")]
public class HomeController : ApiController {
[HttpGet]
[Route("GetInfo/{param1}/{param2}")]
public IHttpActionResult GetInfo(string param1, string param2) {
//...
}
}
通话中
//Matches GET subroute/GetInfo/Hello/World
我有以下路线 URL:-
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)
{}
}
但是在URL上面申请之后:-
www.domanname.com/subroute/GetInfo?param1=somestring¶m2=somestring
找不到 URL
我该如何设计这条特定的路线?
您需要稍微修改一下路由,因为查询字符串通常不用于属性路由。它们往往用于内联路由参数。
[RoutePrefix("subroute")]
public class HomeController : ApiController {
//Matches GET subroute/GetInfo?param1=somestring¶m2=somestring
[HttpGet]
[Route("GetInfo")]
public IHttpActionResult GetInfo(string param1, string param2) {
//...
}
}
还有
Enabling Attribute Routing
To enable attribute routing, call
MapHttpAttributeRoutes
during configuration. This extension method is defined in theSystem.Web.Http.HttpConfigurationExtensions
class.
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.
}
}
}
[RoutePrefix("subroute")]
public class HomeController : ApiController {
[HttpGet]
[Route("GetInfo/{param1}/{param2}")]
public IHttpActionResult GetInfo(string param1, string param2) {
//...
}
}
通话中
//Matches GET subroute/GetInfo/Hello/World