Web API Одно действие работает, а почти идентичное - нет? - PullRequest
0 голосов
/ 29 марта 2019

Сообщение об ошибке

{
    "Message": "No HTTP resource was found that matches the request URI 'https://localhost:44390/api/UserRoutes?effectiveDate=3/29/2019'.",
    "MessageDetail": "No type was found that matches the controller named 'UserRoutes'."
}

Рабочее действие

public class AdvanceOrderApiController : BaseApiController
{
    [HttpGet, Route("api/AdvanceOrders")]
    public AdvanceOrdersResult GetAdvanceOrdersForRouteDate(string route, DateTime effectiveDate)
    {
        ...
    }
}

// JavaScript Usage: route="0100" and effectiveDate="03/29/2019".
API.SendRequest("/api/AdvanceOrders", "GET", { route: route, effectiveDate: effectiveDate }, success, failure);

Не рабочее действие

public class UserApiController : BaseApiController
{
    [HttpGet, Route("api/UserRoutes")]
    public IEnumerable<string> GetUserRoutes(DateTime effectiveDate)
    {
        ...
    }
}

// JavaScript Usage: effectiveDate="03/29/2019"
API.SendRequest("/api/UserRoutes", "GET", { effectiveDate: effectiveDate }, success, failure);

WebApiConfig

Не уверен, что это актуально, поскольку я просто объявляю маршрут для каждого действия, но ...

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        ...

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

API.SendRequest

Эта функция - просто оболочка для функции $.ajax в jQuery, ничего особенного.Если код необходим, я представлю его, но он работает для всех других моих вызовов API, поэтому я не могу представить, что это будет источником проблемы.

Эти действия почти идентичны, почему одинработать, а другой нет?

1 Ответ

0 голосов
/ 29 марта 2019

Передача даты, как сказал Игорь в комментариях, показала сообщение об ошибке, которое показало, что у меня был контроллер Api в моей области Permissions, у которого был маршрут, также названный api/UserRoutes.

Как только я изменилсяНаименование маршрута проблема решена.Я просто хотел бы, чтобы он только что сказал мне это сообщение об ошибке с самого начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...