以下は、これを実現する方法の例です。ApiExplorerここでは、特定のアクションとルートをチェックし、アクションを表示するかどうかを決定するカスタム (HelpPage が使用するものに依存する) を作成しています。後で簡単に確認できるように、データ トークンを使用してルート名を保存していることに注意してください。これを行うのは、Web API で与えられたルートから名前を取得できないためです。そのため、ここで datatokens ディクショナリにいくつかのカスタム情報を貼り付けています。
config.Services.Replace(typeof(IApiExplorer), new CustomApiExplorer(config));
config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional },
        dataTokens: new { routeName = "DefaultApi" },
        constraints: null,
        handler:null
    );
public class CustomApiExplorer : ApiExplorer
{
    public CustomApiExplorer(HttpConfiguration config) : base(config) { }
    public override bool ShouldExploreAction(string actionVariableValue, HttpActionDescriptor actionDescriptor, IHttpRoute route)
    {
        //get current route name
        string routeNameKey = "routeName";
        if(route.DataTokens.ContainsKey(routeNameKey))
        {
            string routeName = (string)route.DataTokens[routeNameKey];
            ReflectedHttpActionDescriptor descriptor = (ReflectedHttpActionDescriptor)actionDescriptor;
            if(routeName == "DefaultApi" 
                && descriptor.ControllerDescriptor.ControllerType == typeof(ValuesController)
                && descriptor.ActionName == "Something")
            {
                return false; //do not show this action for this particular route
            }
        }
        // for other actions let the default behavior take place
        return base.ShouldExploreAction(actionVariableValue, actionDescriptor, route);
    }
}
/// <summary>
/// Out of the box Web API doesn't provide any 'MapHttpRoute' extension which takes in the 'data tokens', so here
/// we are creating a new extension.
/// </summary>
public static class MyExtensions
{
    public static IHttpRoute MapHttpRoute(this HttpRouteCollection routes, string name, string routeTemplate, 
                                            object defaults, object constraints, object dataTokens, 
                                            HttpMessageHandler handler)
    {
        if (routes == null)
        {
            throw new ArgumentNullException("routes");
        }
        HttpRouteValueDictionary defaultsDictionary = new HttpRouteValueDictionary(defaults);
        HttpRouteValueDictionary constraintsDictionary = new HttpRouteValueDictionary(constraints);
        HttpRouteValueDictionary dataTokensDictionary = new HttpRouteValueDictionary(dataTokens);
        IHttpRoute route = routes.CreateRoute(routeTemplate, defaultsDictionary, constraintsDictionary, dataTokensDictionary, handler: handler);
        routes.Add(name, route);
        return route;
    }
}