在API控制器中调用自定义方法

webdad3

我在Web api控制器中添加了一个方法:

public String GetpeopleInFamily(string familyId)

我从这个问题中获取了一些示例:ASP.NET Web API中的自定义方法名称

我根据上面的内容更新了RouteConfig.cs文件:public static void RegisterRoutes(RouteCollection route){route.IgnoreRoute(“ {resource} .axd / {* pathInfo}”);

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { id = UrlParameter.Optional }
        );



        routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
        routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}");
        routes.MapHttpRoute("DefaultApiWithActionAndId", "Api/{controller}/{action}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
        routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint("Get") });
        routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint("Post") });
    }

但是调用该方法时我仍然得到404:

请求GET / api / people / GetpeopleInFamily / 101 HTTP / 1.1

{“ Message”:“未找到与请求URI相匹配的HTTP资源' http:// localhost:17438 / api / people / GetpeopleInFamily / 101 '。”,“ MessageDetail”:“在控制器'people上未找到任何操作'符合要求。“}

我需要做些什么才能使它正常工作?同样,这是添加返回更复杂数据集的自定义方法的最佳实践吗?

马丁·范普特(Martijn van Put)

familyId不会在路线映射。因此,您可以创建一个新的Mapping,从而将familyId添加到ID映射中,或重写GetPeopleInFamilyto的参数id

改写:

public string GetPeopleInFamily(string id)

创建新路线:创建新路线时,请确保删除带有的映射,id否则它将无法正常工作。

routes.MapHttpRoute("DefaultApiWithActionAndFamilyId", "Api/{controller}/{action}/{familyId}", new { familyId = RouteParameter.Optional }, new { familyId = @"\d+" });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

路由到控制器中的自定义动作

来自分类Dev

Rails从自定义表单调用自定义控制器操作

来自分类Dev

调用对象并将其传递给控制器中的自定义方法

来自分类Dev

从自定义类调用视图控制器方法

来自分类Dev

在余烬控制器中创建自定义函数

来自分类Dev

Azure自定义控制器/ API .Net后端

来自分类Dev

在自定义模块中为Magento调用自定义控制器

来自分类Dev

控制器方法上的自定义验证器

来自分类Dev

通过Web API中的自定义属性对控制器进行分组

来自分类Dev

在ASP Web API控制器中创建自定义方法并检索其数据

来自分类Dev

Symfony 4中的自定义异常控制器

来自分类Dev

从控制器laravel4调用自定义模型方法

来自分类Dev

调用对象并将其传递给控制器中的自定义方法

来自分类Dev

UINavigationControllerDelegate方法,在iOS 8中使用导航控制器进行自定义转换

来自分类Dev

在Spring Boot中为自定义控制器方法启用HAL序列化

来自分类Dev

如何在SAP UI中的控制器中定义自定义控制器?

来自分类Dev

Web API控制器内的自定义属性

来自分类Dev

从Web API控制器获取angular $ http中的自定义标头

来自分类Dev

如何在ASP.NET MVC中的控制器中使用自定义方法

来自分类Dev

自定义控制器方法,路线和ERB

来自分类Dev

如何在控制器中调用$ resource自定义方法

来自分类Dev

如何从角度控制器调用自定义指令

来自分类Dev

2sxc - 自定义 api 控制器中缺少 HttpResponseMessage 引用

来自分类Dev

控制器中的Angularjs灯箱自定义关闭

来自分类Dev

如何在 Laravel 5.6 中向资源控制器添加自定义方法

来自分类Dev

如何从 .net core 2.1 mvc 中的控制器调用自定义身份注册方法

来自分类Dev

Rails - 如何将控制器中的自定义方法更改为常规方法?

来自分类Dev

Symfony | 如何从控制器中的存储库访问自定义方法?

来自分类Dev

如何为 Core api 控制器测试自动 ModelState 的自定义属性方法验证?

Related 相关文章

  1. 1

    路由到控制器中的自定义动作

  2. 2

    Rails从自定义表单调用自定义控制器操作

  3. 3

    调用对象并将其传递给控制器中的自定义方法

  4. 4

    从自定义类调用视图控制器方法

  5. 5

    在余烬控制器中创建自定义函数

  6. 6

    Azure自定义控制器/ API .Net后端

  7. 7

    在自定义模块中为Magento调用自定义控制器

  8. 8

    控制器方法上的自定义验证器

  9. 9

    通过Web API中的自定义属性对控制器进行分组

  10. 10

    在ASP Web API控制器中创建自定义方法并检索其数据

  11. 11

    Symfony 4中的自定义异常控制器

  12. 12

    从控制器laravel4调用自定义模型方法

  13. 13

    调用对象并将其传递给控制器中的自定义方法

  14. 14

    UINavigationControllerDelegate方法,在iOS 8中使用导航控制器进行自定义转换

  15. 15

    在Spring Boot中为自定义控制器方法启用HAL序列化

  16. 16

    如何在SAP UI中的控制器中定义自定义控制器?

  17. 17

    Web API控制器内的自定义属性

  18. 18

    从Web API控制器获取angular $ http中的自定义标头

  19. 19

    如何在ASP.NET MVC中的控制器中使用自定义方法

  20. 20

    自定义控制器方法,路线和ERB

  21. 21

    如何在控制器中调用$ resource自定义方法

  22. 22

    如何从角度控制器调用自定义指令

  23. 23

    2sxc - 自定义 api 控制器中缺少 HttpResponseMessage 引用

  24. 24

    控制器中的Angularjs灯箱自定义关闭

  25. 25

    如何在 Laravel 5.6 中向资源控制器添加自定义方法

  26. 26

    如何从 .net core 2.1 mvc 中的控制器调用自定义身份注册方法

  27. 27

    Rails - 如何将控制器中的自定义方法更改为常规方法?

  28. 28

    Symfony | 如何从控制器中的存储库访问自定义方法?

  29. 29

    如何为 Core api 控制器测试自动 ModelState 的自定义属性方法验证?

热门标签

归档