【发布时间】:2013-08-02 07:07:26
【问题描述】:
我的 Servicestack 服务正在发布 Json(通过 jquery)。
sendData = function(dataToSend) {
var request;
return request = $.ajax({
url: "/api/test",
type: "post",
data: JSON.stringify(dataToSend),
dataType: "json",
accept: "application/json",
contentType: "application/json"
});
如果 Json 数据对应于我的 DTO 的根属性(例如:DTO 中的 userId:'foo' -> UserId=foo),则正确反序列化该 Json 数据。
我想在反序列化之前访问原始 json 发布的数据以添加自定义反序列化。 到目前为止,使用自定义过滤器(RequestFilterAttribute)访问查询字符串或数据是否像表单一样发布时,我没有问题。 现在,我看到使用 Chrome 开发人员工具发布的数据位于带有“请求有效负载”的标题中,因此在调试 IHttpRequest 时我无法访问 FormData 和 QueryString。 如何在过滤器中获取原始 json 数据?
【问题讨论】:
-
如果我理解正确,您想在 ServiceStack 尝试将其反序列化为请求 DTO 对象之前访问原始请求正文数据?
-
是的。如果我使用内容类型 application/x-www-form-urlencoded 发布,我可以在过滤器属性代码中调试时看到数据,如果我使用 GET 而不是 POST,我会在查询字符串参数中看到它。
标签: servicestack