我似乎无法通过邮递员使用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" }
感谢任何帮助。
答案 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 中有一些操作(PostPerson
,SetDomainManager
,SetContext
)匹配您发布的请求。
根据我的理解,如果您有一些用于处理业务逻辑的内部方法,您可以将它们标记为受保护或私有而非公开。或者,您可以利用RouteAttribute
(例如[Route("tables/TodoItem")]
)来标记基于属性的路由的操作。使用RouteAttribute
时,您需要通过在ConfigureMobileApp
的{{1}}方法中添加以下代码来启用它:
Startup.MobileApp.cs
有关详细信息,您可以关注Adrian Hall的blog。