ASP MVC 4 Web Api包装了我的json结果

时间:2012-11-27 00:55:06

标签: asp.net-mvc asp.net-web-api

我的WebApi操作返回一个从JObject.parse(jsonString)构建的动态对象;

我有GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

但该对象包含在响应中的默认结果消息中。

根据这个article返回的匿名对象很好,应该给出预期的结果

我正在使用异步控制器,因为我必须在这里等待一些ReadAsStringAsync()我的行动的原型:

public async Task<dynamic> Pics(string flavor, int pagesize)

预期结果:

{"flavor":"","maxFeedSize":0,"mediaContent":[]}

返回动态对象时的结果:

{
        "Result": {
            "flavor": "",
            "maxFeedSize": 0,
            "mediaContent": []
        },
        "Id": 1,
        "Exception": null,
        "Status": 5,
        "IsCanceled": false,
        "IsCompleted": true,
        "CreationOptions": 0,
        "AsyncState": null,
        "IsFaulted": false
    }

1 个答案:

答案 0 :(得分:1)

正如我的想法和评论中提到的那样。由于天真的方法超载,我正在返回Task<Task<dynamic>>

    public async Task<dynamic> Pics(string flavor, string pagesize)
    {
        return Pics(flavor, pagesize, null);
    }

编辑: 我尝试过这个,因为与MVC路由不同,即使字符串可以为空,也会忽略字符串参数抛出错误

  public async Task<dynamic> Pics(string flavor, string pagesize, string startid =null)

工作正常:)