Вам следует создать пользовательский механизм связывания модели, который напрямую связывает загруженный файл с полем байта [] в вашей модели.
Пример:
public class CustomByteArrayModelBinder : ByteArrayModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var file = controllerContext.HttpContext.Request.Files[bindingContext.ModelName];
if (file != null)
{
if (file.ContentLength > 0)
{
var fileBytes = new byte[file.ContentLength];
file.InputStream.Read(fileBytes, 0, fileBytes.Length);
return fileBytes;
}
return null;
}
return base.BindModel(controllerContext, bindingContext);
}
}
Вы также должны удалить привязку модели по умолчанию и добавить свою (в Global.asax.cs, внутри метода Application_Start):
ModelBinders.Binders.Remove(typeof(byte[]));
ModelBinders.Binders.Add(typeof(byte[]), new CustomByteArrayModelBinder());
Этот код был удален из этой хорошей статьи: http://prideparrot.com/blog/archive/2012/6/model_binding_posted_file_to_byte_array
С наилучшими пожеланиями:)