Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP MVC 4 Web Api包装我的json结果_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

Asp.net mvc ASP MVC 4 Web Api包装我的json结果

Asp.net mvc ASP MVC 4 Web Api包装我的json结果,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,我的WebApi操作返回从JObject.parse(jsonString)构建的动态对象 我有GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear() 但该对象被包装在响应中的默认结果消息中 根据这一点,返回匿名对象是可以的,应该会给出预期的结果 我使用的是异步控制器,因为我必须等待一些ReadAsStringAsync(),这里是我操作的原型: public async Task

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

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

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

根据这一点,返回匿名对象是可以的,应该会给出预期的结果

我使用的是异步控制器,因为我必须等待一些ReadAsStringAsync(),这里是我操作的原型:

public async Task<dynamic> Pics(string flavor, int pagesize)
返回动态对象时的结果:

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

正如我所想和评论中提到的。我返回了一个
任务
,因为有一个幼稚的方法重载

    public async Task<dynamic> Pics(string flavor, string pagesize)
    {
        return Pics(flavor, pagesize, null);
    }
公共异步任务图片(字符串样式、字符串页面大小)
{
返回图片(风格、页面大小、空);
}
编辑: 我尝试这样做是因为与MVC不同,字符串参数会抛出一个错误,即使字符串可以为null

  public async Task<dynamic> Pics(string flavor, string pagesize, string startid =null)
公共异步任务图片(字符串样式、字符串页面大小、字符串startid=null)

工作正常:)

我不清楚你在问什么。您期望的行为是什么?您实际得到的行为是什么?从您得到的序列化
任务的外观来看
。。。您可以发布所有控制器操作代码吗?或者您可以将重载设置为非异步的(提示:倾听编译器警告)。如下所示:
publictask图片(stringflavor,stringpagesize){返回图片(flavor,pagesize,null)}
  public async Task<dynamic> Pics(string flavor, string pagesize, string startid =null)