Я пытаюсь понять, что я думаю является проблемой привязки модели в моем проекте ASP.NET Core. У меня есть следующее действие контроллера Index:
[HttpGet]
public async Task<IActionResult> Index(SortFilterIndexOptions options) { ... }
SortFilterIndexOptions
- это четыре члена, определенные в следующем классе:
public class SortFilterIndexOptions
{
public int SelectedBirdId { get; set; }
public bool ShowAll { get; set; }
public bool ShowInTable { get; set; }
public int page { get; set; }
}
Это позволяет пользователю фильтровать страницу с постраничным индексом. Члены bool связаны с элементами управления флажками.
У меня есть ошибка, если член bool ShowAll изменяется на TRUE, а затем я пытаюсь перейти на другую страницу. Как показано на скриншоте ниже, часть URL-адреса с параметром ShowAll содержит два логических значения (ShowAll = true, false):
что, конечно же, приводит к ошибке синтаксического анализа («FormatException: String не распознается как допустимое логическое значение»).
Что тут происходит? Это происходит только тогда, когда для параметра ShowAll установлено значение TRUE. Это проблема маршрутизации, потому что она не соответствует шаблону маршрута по умолчанию? Или это проблема с ModelBinder? Я просто пытаюсь понять, что происходит, чтобы принять правильные меры. Любая помощь будет оценена ...
Обновить
Теперь это проблема # 3246 ('Ошибка привязки модели с логическими значениями') в asp / Домашний репозиторий GitHub (первоначально мной поднятый как проблема # 1711 в dotnet / Core репозиторий).
ShowAll=true
- person Nkosi   schedule 16.05.2018