类的两个Route属性及其方法?

时间:2016-05-28 08:09:35

标签: c# asp.net-web-api visual-studio-2015 routes

我在vs 2015中有一个Web API。由于我的UI项目是分开的,我在控制器类之前定义了这个属性:

    [EnableCors("AllowAll")]
    [Route("api/[controller]")]
    public class myController : Controller
    {  
       ...

在这个控制器中,我有一个方法可以插入来自客户端HTTP请求的一些数据。我想将其命名为“添加”(而不是“发布”)。我想在post请求中调用此方法。所以我添加了[HttpPost],如下所示:

 [HttpPost]
    public object Add(string title, string myStruct)
    {  

如何确定这是我的Post方法?
我应该在方法定义之前使用[Route("api/[controller]/define")]吗?!
我可以设置从此状态向前的路由吗?  我的网址是

http://localhost:54848/#/myController/define

1 个答案:

答案 0 :(得分:1)

你的问题不明确,我会尽力回答我的理解。 您应该在控制器的方法中添加路由属性,如下所示:

[EnableCors("AllowAll")]
[Route("api/exampleController")]
public class exampleController : Controller
{  
   ...

 [HttpPost]
 [Route("add")]
 public object Add(string title, string myStruct)
 {
  ...
 }
}

api调用的url应该是这样的:http://www.example.com/api/exampleController/add

您在问题中发布的网址看起来像是一个路由网址,您应该从$ stateproviders那里做到这一点:

  $stateProvider.state('define', {
        url: '/define',
        templateUrl: 'page-posts-list.html',
        controller: mycontroller
    });

然后,您可以使用控制器工厂上方的url调用api的post方法。希望这对你有帮助。