1

正如标题所示,我想扩展 ApiContoller 类以包含一些自定义属性和辅助方法,但每当我尝试将它用于控制器时,我都会收到消息Multiple actions were found that match the request:

示例代码:

public class ExtendedApiController : ApiController {
    public string SomeHelper() {
    ....
    }
}

public class AccountController : ExtendedApiContoller {
    public void Post (ModelObject obj){
        string x = SomeHelper();
        ...Bunch of business logic
    }
}

出于某种原因,Web Api 似乎不喜欢我这样做,或者我需要覆盖其他一些基本方法。我能看到的唯一其他选择是将扩展方法附加到 ApiContoller 但如果可能的话我想避免这种情况。

有任何想法吗?

4

2 回答 2

4

您可以使用[NonAction]属性:

public class ExtendedApiController : ApiController {

   [NonAction] 
   public string SomeHelper() {
    ....
    }

}

更多信息在这里,在页面底部

于 2013-02-21T13:10:03.583 回答
1

Get...ASP NET WebAPI 在配置之前使用约定,因此它会尝试为 GET 请求、Post...POST 请求等以 PUT 和 DELETE开头的方法。

所以也许你有 2 种方法以Get..., Post...,Put...Delete...

于 2013-02-21T12:21:33.237 回答