Extend ApiController

本文关键字:ApiController Extend | 更新日期: 2023-09-27 18:00:20

正如标题所示,我想扩展ApiController类以包括一些自定义属性和辅助方法,但每当我尝试将其用于控制器时,我都会收到消息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
    }
}

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

有什么想法吗?

Extend ApiController

您可以使用[NonAction]属性:

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

更多信息请点击此处,在页面底部。

ASP.NETWebAPI在配置之前使用约定,因此它试图找到一个方法,该方法以Get...开头用于GET请求,以Post...开头用于POST请求,依此类推用于PUT和DELETE。

因此,您可能有两种方法,以Get...Post...Put...Delete...

开始