Коллекция, привязанная к 'модели', превышена MvcOptions.MaxModelBindingCollectionSize (1024)

Я получаю исключение при отправке в контроллер массива из более чем 1024 элементов (в настоящее время 2500 элементов). Кажется, существует максимальное ограничение на количество отправляемых элементов - 1024.

Кажется, он установлен в MvcOptions, однако я использую.Net Core 3.0 и использую маршрутизацию конечных точек, поэтому у меня нет доступа к MvcOptions через UseMVC.

Как я могу поднять этот лимит?

Раньше я повышал ограничения, добавляя вспомогательный атрибут, как показано ниже. Однако я не уверен, где мне нужно установить этот конкретный предел - он не является частью HttpContext.Features.

    public void OnAuthorization(AuthorizationFilterContext context)
    {
        var features = context.HttpContext.Features;
        var formFeature = features.Get<IFormFeature>();
        if (formFeature == null || formFeature.Form == null)
        {
            features.Set<IFormFeature>(new FormFeature(context.HttpContext.Request, _formOptions));
        }
    }

1 ответ

Решение

В Startup#ConfigureServices

services.Configure<FormOptions>(options => options.ValueCountLimit = 5000); // select your max limit

Для.net core 3.1

Обновите приведенный ниже код в файле запуска

  services.AddMvc(options =>
            {
                
                options.MaxModelBindingCollectionSize = int.MaxValue;

            });
Другие вопросы по тегам