Маршрутизация атрибутов для строки запроса - PullRequest
0 голосов
/ 14 мая 2018

У меня ниже URL маршрута: -

www.domanname.com/subroute/GetInfo?param1=somestring&param2=somestring

У меня есть функция в webapi: -

public class HomeController : ApiController
{
    public object GetInfo(string param1,string param2)
    {}
}

Чтобы применить маршрут: -

[RoutePrefix("subroute")]
public class HomeController : ApiController
{
    [Route("GetInfo?param1={param1:string}&param2={param2:string}")]
    public object GetInfo(string param1,string param2)
    {}
}

Но после применения вышеуказанного URL: -

www.domanname.com/subroute/GetInfo?param1=somestring&param2=somestring

Невозможно найти этот URL

Как я могу спроектировать этот конкретный маршрут?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018
[RoutePrefix("subroute")]
public class HomeController : ApiController {
    [HttpGet]
    [Route("GetInfo/{param1}/{param2}")]
    public IHttpActionResult GetInfo(string param1, string param2) {
        //...
    }
}

Вызов

//Matches GET subroute/GetInfo/Hello/World
0 голосов
/ 14 мая 2018

Вам необходимо немного изменить маршруты, поскольку строка запроса обычно не используется в атрибутных маршрутах. Как правило, они используются для параметров встроенного маршрута.

[RoutePrefix("subroute")]
public class HomeController : ApiController {
    //Matches GET subroute/GetInfo?param1=somestring&param2=somestring
    [HttpGet]
    [Route("GetInfo")]
    public IHttpActionResult GetInfo(string param1, string param2) {
        //...
    }
}

Также

Включение маршрутизации атрибутов

Чтобы включить маршрутизацию атрибутов, вызовите 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.
        }
    }
}

Ссылка Маршрутизация атрибутов в ASP.NET Web API 2

...