我在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
答案 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方法。希望这对你有帮助。