移动服务应用程序表控制器帖子

时间:2017-03-22 20:01:25

标签: azure-mobile-services

我似乎无法通过邮递员使用TableController发布数据。 我收到以下错误:

  

{" message":"发生了错误。"," exceptionMessage":"找到了与请求匹配的多项操作:\类型为CEVault.Backend.Backend.NetStandard.Controllers.Mobile.PersonController类型为CEVault.Backend.NetStandard.Controllers.Mobile.PersonController \ r \ nSetContext类型CEVault.Backend.NetStandard.Controllers.Mobile.PersonController \ r \ n \ nNetDomainManager上的r \ nPostPerson \ r \ n设置类型为CEVault.Backend.NetStandard.Controllers.Mobile.PersonController"," exceptionType":" System.InvalidOperationException"," stackTrace": " System.Web.Http.ApiController上的System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectAction(HttpControllerContext controllerContext)\ r \ n在System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext controllerContext)\ r \ n中.ExecuteAsync(HttpControllerContext controllerContext,CancellationToken cancellationToken)\ r \ n在System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"}

看起来服务器无法找到路线。但是所有其他动作/动词都可以正常工作(Patch,delete,get)。

邮递员这是代码:

POST /tables/person HTTP/1.1

主持人:localhost:43689 ZUMO-API-VERSION:2.0.0 Content-Type:application / json 缓存控制:无缓存 邮差 - 令牌:62bb9475-2b24-024a-b434-c9ddec0bcd9c

{     "删除":false,     " id":" 81FEF95A-2B61-4CE6-B9F7-FEBD572DADD1",     " avatar":"",     "注意":null,     " lastName":"小号",     " middleName":" Ignacio",     " firstName":"唐纳德",     " userId":" 81FEF95A-2B61-4CE6-B9F7-FEBD572DA876"   }

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

  

{“message”:“发生了错误。”,“exceptionMessage”:“找到了与请求匹配的多项操作:\ r \ n PostPerson on在类型CEVault.Backend.NetStandard.Controllers.Mobile.PersonController \ r \ n SetContext 上键入CEVault.Backend.NetStandard.Controllers.Mobile.PersonController \ r \ n SetDomainManager 键入CEVault.Backend.NetStandard.Controllers.Mobile.PersonController \ r \ n SetContext 类型CEVault.Backend.NetStandard.Controllers.Mobile.PersonController“,”exceptionType“:”System.InvalidOperationException“,< / p>

根据您的错误消息,我认为您的 PersonController.cs 中有一些操作(PostPersonSetDomainManagerSetContext)匹配您发布的请求。

根据我的理解,如果您有一些用于处理业务逻辑的内部方法,您可以将它们标记为受保护或私有而非公开。或者,您可以利用RouteAttribute(例如[Route("tables/TodoItem")])来标记基于属性的路由的操作。使用RouteAttribute时,您需要通过在ConfigureMobileApp的{​​{1}}方法中添加以下代码来启用它:

Startup.MobileApp.cs

有关详细信息,您可以关注Adrian Hall的blog