ASP.NET Web Api - 多个参数500错误

时间:2016-02-10 22:46:05

标签: c# asp.net asp.net-mvc asp.net-web-api2

'尝试使用两个参数创建一个web api控制器:一个模型对象和一个字符串。

public string AddDevice(Device device, [FromBody] string userName)
{
    // Some operations here               
}

当我在fiddler上使用一个参数尝试时: 对于Device对象(正文请求):

{
    "DeviceName":"name,
    "StolenFlag":false
}

对于字符串“[FromBody] string userName”(正文请求):

"userName"

工作正常。我只是不知道如何使这个方法适用于这两个参数。当我尝试在提琴手上连接请求体时:

{
    "DeviceName":"name,
    "StolenFlag":false
}
"userName"

我收到500错误。这意味着,该服务器找到正确的控制器方法但无法处理请求。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

首先将以下行添加到App_Start文件夹中的WebApiConfig.cs。

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

它进入这个功能:

public static void Register(HttpConfiguration config)

构建API并从响应中读取完整的错误消息。这应该告诉你到底发生了什么。

由于您在Request主体中只能有一个参数,因此您可以将方法更改为接受URI中的用户名。

   public string AddDevice([FromBody] Device device, string userName)
    {
        // Some operations here
        return "";              
    }