C# aspnetboilerplate递归实体查找时出现内部500错误
我在查询递归实体查找时遇到以下错误 错误: {“message”:“出现错误”。,“exceptionMessage”:“存在为api控制器应用程序/类别定义的GetCategories操作,但使用不同的HTTP谓词。请求谓词为GET。它应为Post”,“exceptionType”:“System.Web.HttpException”,“stackTrace”:“位于Abp.WebApi.Controllers.Dynamic.Selectors.AbpApiControllerActionSelector.GetActionDescriptorByActionName(HttpControllerContext controllerContext,DynamicCapicControllerInfo controllerInfo,String actionName)\r\n位于Abp.WebApi.Controllers.Dynamic.Selectors.AbpApiControllerActionSelector.Selector操作(HttpControllerContext controllerContext controllerContext)\r\n位于System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext,CancellationToken CancellationToken)\r\n位于Castle.Proxies.DynamicCapicontrollerC# aspnetboilerplate递归实体查找时出现内部500错误,c#,asp.net-mvc,entity-framework,recursion,aspnetboilerplate,C#,Asp.net Mvc,Entity Framework,Recursion,Aspnetboilerplate,我在查询递归实体查找时遇到以下错误 错误: {“message”:“出现错误”。,“exceptionMessage”:“存在为api控制器应用程序/类别定义的GetCategories操作,但使用不同的HTTP谓词。请求谓词为GET。它应为Post”,“exceptionType”:“System.Web.HttpException”,“stackTrace”:“位于Abp.WebApi.Controllers.Dynamic.Selectors.AbpApiControllerActionS
1Proxy\u 5.ExecuteAsync\u回调(HttpControllerContext controllerContext,CancellationToken CancellationToken CancellationToken)\r\n在Castle.Proxies.Invocations.ApiController\u ExecuteAsync\u 5.InvokeMethodOnTarget()\r\n在Castle.DynamicProxy.AbstractInvocation.Procedure()\r\n在Abp.WebApi.Controllers.Dynamic.Interceptors.abpddynamicApicControllerInterceptor
1.Intercept(IInvocation调用)\r\n在Castle.DynamicProxy.AbstractInvocation.Proceduce()\r\n位于Castle.proxy.DynamicApiController`1Proxy_5.ExecuteAsync(HttpControllerContext controllerContext,CancellationToken CancellationToken)\r\n位于System.Web.Http.Dispatcher.HttpControllerDispatcher.d_1.MoveNext()“}
只有在我添加了第一个具有ParentId
模型
所有WebApi方法的默认http谓词为POST。 用邮局提出你的要求
如果您不喜欢此解决方案,可以使用常规谓词。对于常规谓词,它会显示方法名称前缀并与相关http谓词匹配
- GetCategories->HTTP-GET
- 删除类别->HTTP-DELETE
- UpdateCategory->HTTP-PUT
- CreateCategory->HTTP-POST
Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
.ForAll<IApplicationService>(Assembly.GetAssembly(typeof(SimpleTaskSystemApplicationModule)), "tasksystem")
.WithConventionalVerbs()
.Build();
Configuration.Modules.AbpWebApi().DynamicCapicontrollerBuilder
.ForAll(Assembly.GetAssembly(typeof(SimpleTaskSystemApplicationModule)),“tasksystem”)
.使用常规动词()
.Build();
有关进一步资料:
您的解决方案修复了问题的一半,以帮助找到根本原因,即自引用Json错误。
public ListResultDto<CategoryListDto> GetCategories(GetCategoriesInput input)
{
var categories = _categoryRepository
.GetAll()
.WhereIf(
!input.Filter.IsNullOrEmpty(),
p => p.Name.Contains(input.Filter)
)
.OrderBy(p => p.Name)
.ToList();
return new ListResultDto<CategoryListDto>(categories.MapTo<List<CategoryListDto>>());
}
[AutoMapFrom(typeof(Category))]
public class CategoryListDto : FullAuditedEntityDto
{
public string Name { get; set; }
public string SharepointMapping { get; set; }
public int? ParentId { get; set; }
public virtual Category Parent { get; set; }
}
Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
.ForAll<IApplicationService>(Assembly.GetAssembly(typeof(SimpleTaskSystemApplicationModule)), "tasksystem")
.WithConventionalVerbs()
.Build();