It turns out the reason is that ValueProviderDictionary
only looks in Request.Form
, RouteData
and Request.QueryString
to populate the value provider dictionary in the model binding context. So there’s no way for a custom model binder to allow posted files to participate in model binding without inspecting the files collection in the request context directly. This is the closest way I’ve found to accomplish the same thing:
public ActionResult Create(MyModel myModel, HttpPostedFileBase myModelFile) { }
As long as myModelFile
is actually the name of the file
input form field, there’s no need for any custom stuff.