ServiceStack удаляет литерал "json", когда часть соответствующего параметра маршрута

У меня есть маршрут, который выглядит примерно так:

[Route("/servejson/{JsonId}", Verbs = "GET", Summary = "")]

Когда я ударил моего хозяина с /servejson/test.json, Я получил test. как мой параметр JsonId. Я хотел бы получить test.json как JsonId. ServiceStack, похоже, удаляет часть "json" моего параметра.

1 ответ

Решение

Это поведение объяснено в вики Routing, где servicestack будет смотреть на расширение, чтобы увидеть, является ли это поддерживаемым типом контента, если это так, он автоматически предварительно установит тип контента ответа и подрежет расширение так, чтобы оно было прозрачным в ваших сервисах.

Вы можете отключить это поведение по умолчанию в вашем AppHost.SetConfig с помощью:

Config.AllowRouteContentTypeExtensions = false.
Другие вопросы по тегам