Как вернуть пустой JSON-объект для методов возвращаемого типа void?
Требование:
Я ищу способ вернуть пустой объект JSON (например, {}
) когда тип возвращаемого значения моего метода ServiceStack void
,
Обоснование:
Причина желания вернуть пустой объект JSON для void
Типы связаны с тем, как jQuery обрабатывает тип контента application/json
, Как обсуждено здесь, jQuery выдаст ошибку, когда 200 - OK
Статус получен без содержания. Который является тем, что в настоящее время возвращается за пустоту.
Предусмотренные проблемы:
Я надеюсь, что есть простой способ сериализации void
в {}
,
- Если это возможно, будут ли неблагоприятные последствия для этого?
- Повлияет ли это на клиента ServiceStack C#, когда он ожидает
void
?
1 ответ
Решение
Я нашел простое решение было переопределить OnAfterExecute
метод в моем пользовательском ServiceStack ServiceRunner
,
Если нет ответа (потому что метод вернулся void
) и ContentType
является application/json
затем отправьте пустой объект.
public override object OnAfterExecute(IRequestContext requestContext, object response)
{
if(response == null && requestContext.ContentType == "application/json")
response = new {};
return base.OnAfterExecute(requestContext, response);
}