2

我正在尝试使用 ServiceStack 作为 Fine Uploader 的端点来上传一些文件。如果将响应设置为内容类型 json/application 即提示下载响应响应,则 IE 会出现令人讨厌的行为,如下所述:

IE 在提交包含文件的 jQuery 多部分表单数据时尝试下载 json 响应

如何强制 ServiceStack 以文本/纯文本形式响应。我正在尝试这个:

 public class UploadFileService : Service
    {
        [AddHeader(ContentType = "text/plain")]
        public object Any(UploadFile request)
        {
            foreach (var uploadedFile in base.RequestContext.Files)
            {
                var test = uploadedFile.FileName;
            }
            return new UploadFileResponse{ Success = true};
        }
    }

但是使用端点时的服务堆栈:

/api/UploadFile?format=json

仍将内容类型返回为 application/json

有任何想法吗?

谢谢

4

1 回答 1

3

如果您只想返回一个plain/text字符串,则还需要返回一个字符串,如本例所示。因为它是一个 POCO 对象,所以您首先要对其进行序列化(假设为 JSON):

public class UploadFileService : Service
{
    [AddHeader(ContentType = "text/plain")]
    public object Any(UploadFile request)
    {
        foreach (var uploadedFile in base.RequestContext.Files)
        {
            var test = uploadedFile.FileName;
        }
        var dto = new UploadFileResponse { Success = true };
        return dto.ToJson();           
    }
}

否则,您可以直接返回字符串文字,例如:

return "{Success:true}";
于 2013-04-12T13:39:00.837 回答