Post 如何接收JSON数组?

Post 如何接收JSON数组?,post,asp.net-web-api,Post,Asp.net Web Api,请帮我接收一些JSON数组 如果我(通过Fiddler)发送请求,请求体如下: public HttpResponseMessage Post(JObject[] smspackage) { List<MySMS> smses = smspackage.ToList<MySMS>(); try { SMS_Repository.Add(smses); return Request.CreateResponse<

请帮我接收一些JSON数组

如果我(通过Fiddler)发送请求,请求体如下:

public HttpResponseMessage Post(JObject[] smspackage)
{
    List<MySMS> smses = smspackage.ToList<MySMS>();
    try
    {
        SMS_Repository.Add(smses);
        return Request.CreateResponse<MySMS>(HttpStatusCode.Created, smses);
    }
    catch (Exception)
    {

        return Request.CreateErrorResponse(HttpStatusCode.ExpectationFailed, "error");
    }
}
[{“名称”:“Homerius”,“tonumber”:“155555”,“fromnumber”:“166666”,“text”:“&&&??!”},{“名称”:“Stone”,“tonumber”:“9654999”,“fromnumber”:“999666”,“text”:“h9miiii99!”}]

我如何在控制器中接收它

我尝试这样做:

public HttpResponseMessage Post(JObject[] smspackage)
{
    List<MySMS> smses = smspackage.ToList<MySMS>();
    try
    {
        SMS_Repository.Add(smses);
        return Request.CreateResponse<MySMS>(HttpStatusCode.Created, smses);
    }
    catch (Exception)
    {

        return Request.CreateErrorResponse(HttpStatusCode.ExpectationFailed, "error");
    }
}
公共httpresponsemessagepost(JObject[]smspackage)
{
List smses=smspackage.ToList();
尝试
{
SMS_Repository.Add(smses);
返回请求.CreateResponse(HttpStatusCode.Created,smses);
}
捕获(例外)
{
返回请求.CreateErrorResponse(HttpStatusCode.ExpectationFailed,“错误”);
}
}
但它不起作用

对不起,我的英语不好

为什么不直接使用:

public HttpResponseMessage Post(List<MySMS> smses)
{
    try
    {
        SMS_Repository.Add(smses);
        return Request.CreateResponse<List<MySMS>>(HttpStatusCode.Created, smses);
    }
    catch (Exception)
    {
        return Request.CreateErrorResponse(HttpStatusCode.ExpectationFailed, "error");
    }
}
公共httpresponsemessagepost(列出SMSE)
{
尝试
{
SMS_Repository.Add(smses);
返回请求.CreateResponse(HttpStatusCode.Created,smses);
}
捕获(例外)
{
返回请求.CreateErrorResponse(HttpStatusCode.ExpectationFailed,“错误”);
}
}
或者:

public HttpResponseMessage Post(JArray smspackage)
{
    List<MySMS> smses = smspackage.ToObject<List<MySMS>>();

    ... snip ...
}
公共httpresponsemessagepost(JArray smspackage)
{
List smses=smspackage.ToObject();
剪
}

可选变量在方法公共HttpActionDescriptor SelectAction(HttpControllerContext controllerContext)中给出异常:var selectedAction=\u innerSelector.SelectAction(controllerContext);我已经用您提供的信息测试了解决方案,它对我有效。您遇到的错误可能更多地与您的路由和操作选择有关。我建议你打开一个新问题,并提供完整的路由和控制器代码。这两种变体都有效!谢谢,我不知道为什么它以前不起作用。事实证明,这很容易。