C# 使用OData Web Api处理404以发送自定义响应时遇到困难

C# 使用OData Web Api处理404以发送自定义响应时遇到困难,c#,routes,asp.net-web-api2,odata,owin,C#,Routes,Asp.net Web Api2,Odata,Owin,我有web api 2.2,它是owin托管的,服务于odata v4端点 考虑一下,我定义了两个类似的操作: public class EntityController : ODataController { [HttpGet] [ODataRoute("A")] public IHttpActionResult Action1() { //some code } [HttpGet] [ODataRoute("B")]

我有web api 2.2,它是owin托管的,服务于odata v4端点

考虑一下,我定义了两个类似的操作:

public class EntityController : ODataController
{
    [HttpGet]
    [ODataRoute("A")]
    public IHttpActionResult Action1()
    {
        //some code
    }

    [HttpGet]
    [ODataRoute("B")]
    public IHttpActionResult Action2()
    {
        //some code
    }
}
config.Services.Replace(typeof(IExceptionHandler), new CustomExceptionHandler());
我使用以下方法定义了路线:

config.MapHttpAttributeRoutes();
config.MapODataServiceRoute
(
   routeName: "ODataRoute",
   routePrefix: "Data",
   model: GetModel()
);
我使用
http://:/Data/A
http://:/Data/B
进行查询。一切正常

现在,当我查询http://:/Data/C时,它会给出预期的404。我想返回数据,如未找到段“C”的
资源

我尝试实现ExceptionHandler,但Hanlde方法没有成功。我已经像这样注册了处理程序:

public class EntityController : ODataController
{
    [HttpGet]
    [ODataRoute("A")]
    public IHttpActionResult Action1()
    {
        //some code
    }

    [HttpGet]
    [ODataRoute("B")]
    public IHttpActionResult Action2()
    {
        //some code
    }
}
config.Services.Replace(typeof(IExceptionHandler), new CustomExceptionHandler());
有没有关于如何实施的建议?提前谢谢