Skip to content

An explicit json model binder to allow json serialized parts in a multipart-formdata request of a .NET-Core controller action.

License

Notifications You must be signed in to change notification settings

BrunoZell/JsonModelBinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JsonModelBinder

This library provides an explicit json model binder to allow json serialized parts in a multipart-formdata request of a .Net-Core controller action.

Install-Package JsonModelBinder

Now you can, for example, have a file upload action with additional data about the upload as a json structure. Then your controller upload action would look like this:

[HttpPost]
public IActionResult Upload([ModelBinder(BinderType = typeof(JsonModelBinder))] JsonModel model, IFormFile file) {
    // model is now deserialized from the formdata-part named 'model'
    // file represents the file sent in the formdata-part named 'file'
    return Ok();
}

An valid request for the above action would be a POST with content-type: multipart/form-data with two parts specified: model (the json string according to the model type) and file (the form-data file). The model binder will take care of the deserialization process and will provide you with a concrete model class as specified in the controller action signature.

The JsonModelBinder will use the defined MvcJsonOptions from startup (.AddMvc().AddJsonOptions(...)). If these options are not available the default Json.Net settings will be used to deserialize the model.

About

An explicit json model binder to allow json serialized parts in a multipart-formdata request of a .NET-Core controller action.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages