ASP .NET Web API 2 FromForm模型绑定器属性?

时间:2018-01-11 18:35:39

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

ASP.NET Web API 2(非核心)是否还包含用于绑定操作的[FromForm]属性?或者我可以将ASP.NET Core中的dll添加到普通的ASP.NET Web API 2中吗? {

"Message": "The request entity's media type 'multipart/form-data' is not supported for this resource.",
"ExceptionMessage": "No MediaTypeFormatter is available to read an object of type 'FooBindModel' from content with media type
     

'多部分/格式数据“'。,       “ExceptionType”:“System.Net.Http.UnsupportedMediaTypeException”,       “StackTrace”:“在System.Net.Http.HttpContentExtensions.ReadAsAsync [T](HttpContent)   content,Type type,IEnumerable 1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable 1格式化程序,IFormatterLogger   formatterLogger,CancellationToken cancellationToken)“}

2 个答案:

答案 0 :(得分:0)

不,只有FromUriFromBody可用于ASP.NET Web API 2.您可以查看official documentation

另外,为什么要尝试将FromForm实现到ASP.NET Web API 2.您只需将表单操作配置为GETPOST,然后将数据传递给Web Api 。在我看来,这将超过工程学。

答案 1 :(得分:0)

我不认为你真正了解这些属性或他们做了什么。 [FromBody]表示您提供序列化(JSON,XML等)或基本上没有application/x-www-form-urlencoded mime类型(图像或其他文件类型)的任何其他内容。如果您将正常的表单帖子(application/x-www-form-urlencoded请求正文)发送到标记为[FromBody]的参数,当然它不会绑定,因为您明确告诉它除了你发送的东西之外,它应该是期待的东西。

[FromForm]这样的东西实际上是无用的,因为默认是期望application/x-www-form-urlencoded,这就是这个属性所能做到的。无论多长时间,都不要用任何东西来装饰你的动作参数。