仅仅因为某些事情是POST请求,没有明确的规则如何传递参数.POST请求仍然可以包含URL中编码的查询参数.期望方法参数是"简单"类型(字符串,整数等)的查询参数.
复杂类型通常应该是POST表单对象.标准的ASP.NET POST请求是表单提交,例如登录时.这些请求中的参数通常被编码为application/x-www-form-urlencoded
,基本上是一串键/值对.对于复杂的参数类型,例如表单视图模型对象,这被假定为默认值.
对于所有其他非默认情况,您需要明确表示方法参数的来源,以及如何在请求中传输它.为此,有许多不同的属性:
FromBodyAttribute
- 对于来自请求正文的参数
FromFormAttribute
- 对于来自单个表单数据字段的参数
FromHeaderAttribute
- 对于来自HTTP标头字段的参数
FromQueryAttribute
- 对于来自URL中编码的查询参数的参数
FromRouteAttribute
- 对于来自路径数据的参数
FromServicesAttribute
- 对于应在方法级别注入服务的参数