Web Api中多部分/表单数据的模型绑定

时间:2013-02-14 09:54:53

标签: asp.net-mvc asp.net-web-api

我有这样的模特:

public class Model
{
        [MaxLength(500)]
        public string UserEmail { get; set; }

        [Required]
        [MaxLength(100)]
        public string Product { get; set; }

        // ... And other 10 parameters

        public byte[] StatisticsData { get; set; }

        public byte[] UserXmlFile { get; set; }
}

Api应该从具有multipart / formdata的客户端获取二进制数据的一些统计信息。有几种类似的方法有不同的模型,所以:

  1. 我不想为每个模型编写自定义MediaTypeFormatter
  2. 我想将标准的Binding Model保持在简单的字段中,因为 验证和轻松绑定
  3. 我们有一个api帮助生成器,如this。因此,在每种情况下解析控制器中的请求都是不好的。
  4. 想以mvc风格绑定:)

    [HttpPost]
    public HttpResponseMessage SiteMark(Model model)
    {
    

    我读了这个解决方案Web API model binder doesn't work with HttpPostedFileBase?,但它似乎不太适合我的情况,也没有解决简单字段绑定的问题。

    我考虑编写自定义ModelBinder,它使用标准绑定来处理简单字段。即使我们可以使用默认的mvc绑定器(webapi默认绑定似乎在自己的代码中不可用)。然后通过自定义代码读取周期中的所有二进制数据,并将其映射到二进制字段。

    也许我错过了一些更简单的解决方案?

0 个答案:

没有答案