WebApi从body绑定单个参数(form-urlencoded)

时间:2013-05-08 19:44:36

标签: c# asp.net-web-api

我想了解为什么在POST正文中只有一个参数的情况下,对于内容类型url-formencoded,语法与多个参数的情况不同。

假设我们有两个匹配路由模板的方法:

public string PostSingleString([FromBody]string value)
{
    return value;
}

public class Values
{
    public string Value1 {get; set;}
    public string Value2 {get; set;}
}

public string PostMultipleStrings(Values values)
{
    return String.Format("{0}-{1}", values.Value1, values.Value2);
}

在第一种情况下,请求将是:

POST    [controller]/
body: =myValue

在第二个:但是:

POST    [controller]/
body: Value1=one&Value2=two

如果在第一种情况下使用了第二个示例中的语法(value=myValue),则param将不会绑定(除非字符串包含在复杂类型中)。

任何人都可以解释为什么会这样吗?

0 个答案:

没有答案