当我的ServiceStack服务方法的返回类型为{}
时,我正在寻找一种返回空JSON对象(例如void
)的方法。
想要为void
类型返回空JSON对象的原因是由于jQuery处理内容类型application/json
的方式。当discussed here jQuery在收到没有内容的200 - OK
状态时会抛出错误。这是当前为void返回的内容。
我希望有一种简单的方法可以将void
序列化为{}
。
void
时,它是否会影响ServiceStack c#客户端? 答案 0 :(得分:1)
我发现简单的解决方案是覆盖自定义ServiceStack OnAfterExecute
中的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);
}