Asp.net mvc 4 如何在webapi中区分参数相同的三种POST方法

Asp.net mvc 4 如何在webapi中区分参数相同的三种POST方法,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,我的控制器中有三种后期操作方法 项目后数据([FromBody]MyObject对象) PostCustomData([FromBody]MyObject对象) PostBookData([FromBody]MyObject对象) 那么Web API将如何识别每个方法 提前感谢您认为在Web API平台中这是一个很好的设计吗 我想最好是 负责后期项目数据的ProjectController([FromBody]MyObject对象) 将处理PostCustomData([FromBody]MyO

我的控制器中有三种后期操作方法

  • 项目后数据([FromBody]MyObject对象)

  • PostCustomData([FromBody]MyObject对象)

  • PostBookData([FromBody]MyObject对象)

  • 那么Web API将如何识别每个方法


    提前感谢

    您认为在Web API平台中这是一个很好的设计吗

    我想最好是

    负责后期项目数据的ProjectController([FromBody]MyObject对象)

    将处理PostCustomData([FromBody]MyObject对象)的CustController

    负责PostBookData([FromBody]MyObject对象)的BookController

    如果您真的想采用这种方式,您可以按照以下方式设置路由

    config.Routes.MapHttpRoute(
                    string.Empty,
                    "yourroute1",
                    new { controller = "yourcontroller", action = "PostProjectData" },
                    new { httpMethod = new HttpMethodConstraint(HttpMethod.Get.Post) }
                );
    config.Routes.MapHttpRoute(
                    string.Empty,
                    "yourroute2",
                    new { controller = "yourcontroller", action = "PostCustData" },
                    new { httpMethod = new HttpMethodConstraint(HttpMethod.Get.Post) }
                );
    config.Routes.MapHttpRoute(
                    string.Empty,
                    "yourroute3",
                    new { controller = "yourcontroller", action = "PostBookData" },
                    new { httpMethod = new HttpMethodConstraint(HttpMethod.Get.Post) }
                );
    

    但我认为你应该重新设计控制器,因为资源是项目、客户和书籍。他们应该有自己的控制器。是吗?

    完全同意保持愚蠢。你应该把你的关注分为三个不同的控制者。我同意把帖子分为不同的控制者,因为它们是不同的行为。