2017-02-22 73 views
0

我一直在试图扩展我的帐户控制器以适应我的web api,但是我似乎无法获得新的操作。我只想要一个取得字符串的动作。所以我写了我的动作是这样的:创建新操作的Web API总是会导致404错误

更新:如果我删除了参数(字符串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(); 
    } 

通过改变输入到动态类型的数据可以来自任何形式的对象。