1

我想了解为什么在 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),则参数不会绑定(除非字符串包装在复杂类型中)。

谁能解释为什么会这样?

4

0 回答 0