Code
·
29 lines
·
886 bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29using Microsoft.AspNetCore.Mvc.ModelBinding;
using System.Globalization;
namespace Mvc.ModelBinding.MultiParameter.Testing
{
public class CustomFormValueProviderFactory : IValueProviderFactory
{
public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
ArgumentNullException.ThrowIfNull(context);
// Check if the request is of the correct content type
if (context.ActionContext.HttpContext.Request.ContentType == "application/x-www-form-urlencoded" ||
context.ActionContext.HttpContext.Request.ContentType.StartsWith("multipart/form-data"))
{
var formCollection = context.ActionContext.HttpContext.Request.Form;
var valueProvider = new FormValueProvider(
BindingSource.Form,
formCollection,
CultureInfo.CurrentCulture
);
context.ValueProviders.Add(valueProvider);
}
return Task.CompletedTask;
}
}
}