我有这样的模型:
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 从客户端获取一些包含二进制数据的统计信息。有几种不同模型的类似方法,所以:
- 我不想为每个模型编写自定义 MediaTypeFormatter
- 由于验证和易于绑定,我想将标准绑定模型保留为简单字段
- 我们有一个这样的 api 帮助生成器。因此,在每种情况下都在控制器中解析请求是很糟糕的。
想以 mvc 风格绑定 :)
[HttpPost]
public HttpResponseMessage SiteMark(Model model)
{
我阅读了此解决方案Web API 模型绑定器不适用于 HttpPostedFileBase?,但似乎不太适合我的情况,也没有解决简单字段绑定的问题。
我考虑编写对简单字段使用标准绑定的自定义 ModelBinder。甚至我们可以为此使用默认的 mvc binder(webapi 默认绑定在自己的代码中似乎无法重用)。然后通过自定义代码读取循环中的所有二进制数据并将其映射到二进制字段。
也许我遗漏了一些东西并且有一个更简单的解决方案?