2017-02-22 21 views
0

Я пытаюсь расширить свой контроллер учетных записей для своего веб-api, однако я не могу заставить новые действия работать. Я просто хочу, чтобы действие принимало строку. Так что я написал мое действие, как это:Веб-API, создающий новые действия, всегда приводит к ошибкам 404

Update: Это действие работает, если удалить параметр (строка VAL) Теперь =()

[AllowAnonymous] 
    [Route("Stuff")] 
    public IHttpActionResult Stuff(String val) 
    { 


     return Ok(); 
    } 

Тогда в моем AngularJS я написал функцию, чтобы позвонить мне в действие

function storeConnID (event, data){ 
     return $http({ 
      url: State.Endpoint + "/api/account/stuff", 
      method: "POST", 
      headers: { 
       'Authorization' : 'Bearer '+ State.User.Access_Token 
      }, 
      data: { 
       val: data 
      } 
     }).then(function (res) { }, function (err) { 
      console.log(err); 
     }); 
    }; 

URL-адрес после того, как он все отформатированы как таковой:

https://localhost:44375/api/account/stuff

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

+0

Возможный дубликат [Поместить строку JSON в WEB API] (http://stackoverflow.com/questions/36567136/post-json-string-to-web-api) – Igor

+0

Дубликат предлагает хорошее решение, но мне нравится мой Больше. –

ответ

0

Продолжение исследования:

Javascript не просто посылает в строку, он посылает объект JSON с парой ключ/значение. Действие web api не понимает этот объект, когда я ищу строку.

Мой Предлагаемое решение:

[AllowAnonymous] 
    [Route("Stuff")] 
    public IHttpActionResult Stuff(Dynamic Data) 
    { 


     return Ok(); 
    } 

Изменяя вклад динамического типа данных может прийти в любой форме объекта.