apiController 中不存在的控制器的自定义错误页面

custom error pages for non existent controllers in apiController

我用 MVC 5 控制器创建了一个 MVC web API 来管理 CRUD 操作。

这是我的 API 控制器的片段:

 public class UserController : ApiController
    {// GET api/<controller>
        public IEnumerable<User> GetAllUsers()
        {
            UserRepository urepo = new UserRepository();
            return urepo.UserList(0);
        }

        public User GetUserByID(int userID)
        {
            UserRepository urepo = new UserRepository();
            var userDetails = urepo.UserList(userID);  

            return (from n in userDetails where n.UserId == userID select n).SingleOrDefault();
        } }

这是我的网络API配置文件

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }

当我从 URL 访问这个控制器时说 localhost/api/User/GetAllUsers 它按预期返回所有用户。

但是如果我尝试以其他方式访问说 localhost/api/User 不存在,将抛出文件未找到错误并显示默认错误页面。

我需要的是显示自定义错误页面而不是默认错误页面。 如何实现?

假设您正在使用 ASP.NET Web API 框架开发 HTTP RESTful 应用程序。在此应用程序中,您需要在一个集中位置处理 HTTP 404 错误。 此博客可能会帮助您找到所需内容。

Handling HTTP 404 Error in ASP.NET Web API