【问题标题】:Umbraco ApiController actions wont map to http-verbUmbraco ApiController 动作不会映射到 http-verb
【发布时间】:2013-10-22 23:00:39
【问题描述】:

我之前一直在使用 Web API.. 并且据我所知.. (至少是新版本)中的操作称为 Get、Post、Delete、Put 等... 这些动作是根据请求中的 http-verb 触发的。

例如,您可能有一个名为 UserApiController..的 ApiController..

如果您使用 POST http-verb.. 向 /api/user 发出请求,那么该控制器中的 Post-action 将被触发/执行..

然而.... 似乎我在使用 UmbracoApiController 时遇到了一些麻烦......由于某种原因,它不会执行 post 或 get 或映射到 http-verb 的任何其他操作.. 有什么想法吗?.. 有没有其他方法可以根据 http-verb 强制执行方法?

我当前的代码是:

public class MyController : UmbracoApiController
{
    [HttpPost]
    public bool Post()
    {
        return true;
    }
}

我在动作中放置了一个断点..

【问题讨论】:

  • 这个问题有运气吗?我也面临同样的问题。我可以点击控制器,但我无法从客户端到服务器获取值。如果您解决了问题,请分享

标签: asp.net-web-api umbraco routes httpverbs


【解决方案1】:

它们不会被接受的原因是您使用了错误的属性 - HttpPost 是 System.Web.Mvc 命名空间的一部分,而 Web API 是 System.Web.Http 命名空间的一部分。 您必须改用AcceptVerbs("POST")

【讨论】:

  • 在阅读了更多内容之后.. HttpPost 不只是 AcceptVerbs("POST") 的简写吗?...似乎是这样..我的实际问题与此无关..因为如果我创建了一个名为 Get() 的简单 Action-method,Get 不会在 GET 请求期间执行。据我所知,它在“普通”Web api 中工作,没有任何属性装饰。
  • 您使用什么 URL 发布到控制器? UmbracoApiControllers 映射到 /umbraco/api// 因此您需要使用您的数据调用 POST 到 /umbraco/api/My/Post。
猜你喜欢
  • 1970-01-01
  • 2013-09-24
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
相关资源
最近更新 更多