Приведенный выше ответ действительно работает, но я нашел и другой подход.
В файле CSHTML:
<input name="@brand.Name" type="checkbox" value="true"/>@brand.Name (@brand.Count)
Подпись метода:
public async Task<IActionResult> BrandFilter(Dictionary<string, bool> brands)
При таком подходе вы получаете только проверенные входные данные, что приводит к уменьшению объема данных, отправляемых на сервер.
Итак, вместо того, чтобы публиковать другой вопрос, прокомментируйте этот ответ и скажите, что вы думаете о обоих подходах, и какой из них лучше?