Как передать объект типа в качестве параметра в метод Web Api Get / Post - PullRequest
0 голосов
/ 16 сентября 2018

Вот мой метод Post, и я передаю объект, который содержит параметры

public class TransactionController : ApiController
{
 [HttpPost]
    public TransactionResponse mytest2(TransactionOperationInput input)
    {
       // some operation here 
    }
}

Вот URL, который я пытаюсь проверить

http://localhost:33755/api/Transaction/mytest2?SourceKey=abcdef&Pin=123&Criteria=2018-09-12 00:00:00

Результат Когда метод установлен на POST и Get

[HttpPost]: я получаю сообщение об ошибке 405. Метод не разрешен.

[HttpGet]: входной параметр равен NULL

Это класс Register Route; (извините, я новичок в таблицах маршрутов)

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

Мне нужно обновить таблицу маршрутов? или мой URL неверен?

Кроме того, у меня должен быть метод обслуживания как Post или Get?

1 Ответ

0 голосов
/ 16 сентября 2018

Вы не можете перейти к методу [HttpPost], поэтому он должен быть [HttpGet].А для привязки к сложному объекту из значений строки запроса необходимо использовать атрибут [FromUri]

[HttpGet] // can be omitted 
public TransactionResponse mytest2([FromUri]TransactionOperationInput input)

Для получения дополнительной информации о привязке параметров в web-api см. Привязка параметров в ASP.NET Web API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...