Метод публикации mvc web api с именем настраиваемого действия

И я написал имена настраиваемых действий для каждого процесса.

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
); 

В конфигурации webapi я написал так, а в контроллере я начал, как показано ниже

[System.Web.Http.HttpPost]
public HttpResponseMessage Control(List<string>codes,string updateperson,string refPeriod, int actualyear, int actualmonth)
{

Для методов get все работает хорошо, но для метода post он не работает и выдает ошибку, как показано ниже.

В теле в посте отправляю

{codes: ["CPM2018-004"], updateperson: "E3852", refPeriod: "SFC18", actualyear: 2018, actualmonth: 12}

Request URL:http://localhost:50941/Api/Investment/Control Request Method:POST Status Code:404 Not Found Remote Address:[::1]:50941 Referrer Policy:no-referrer-when-downgrade

Как я могу получать запросы на публикацию в веб-API с именем настраиваемого действия?

1
0
380
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создайте модель для хранения публикуемой стоимости.

public class ControlViewModel {
    public List<string> codes { get; set; }
    public string updateperson { get; set; }
    public string refPeriod { get; set; }
    public int actualyear { get; set; }
    public int actualmonth { get; set; }
}

А затем обновите действие, чтобы ожидать данных в ТЕЛЕ запроса.

public class InvestmentController : ApiController {

    [HttpPost]
    public HttpResponseMessage Control([FromBody]ControlViewModel data) {
        //...
    }

    //...
}

Ссылка Привязка параметров в веб-API ASP.NET

Другие вопросы по теме