Проще и адекватнее всего - перегнать ваши C#-модели в JS-модели (воспользовавшись сериализатором), а на основе этих моделей средствами JavaScript - генерировать списки языков в анкете и связывать их между собой.
Если это MVC, то скорее всего придется делать кастомную фабрику контроллеров, чтобы ввести свое соглашение поска контроллеров. Если же Core, то можно покурить это.
Компилятор дал исчерпывающую информацию в тексте ошибок: типы несовместимы. Не говоря уже о том, что в приведенном вами IndexViewModelнет никакого GMember
Ну сделайте dropdown с категориями и sumbit на onchange этого контрола, а там - экшн, принимающий id категории и выводящий список. Либо грузите все сразу и на JS на тот же onchange фильтруйте список. Или через ajax запрашивайте экшн.
Узнать бы откуда пошла мода называть все плоским?Плоская модель...модель в которой мало логики.
Это скорее "плоский" перевод слова plane, которое обычно подразумевает буквально "простую модель".
Как user experience в "пользовательский опыт" и иже с ними.
Под "плоской моделью" я бы понял намек на отсутствие иерархии (аггрегации, вроде ссылок на объекты/списки детей, родителей).
Алекс Сокол, емнип, да. Но это не беда, а стандарт де-факто: веб-страницы сейчас все кодируются в UTF-8. А всякие упоротые редакторы от MS любят пихать свой windows-125* в новосозданные файлы. Но не отчаивайтесь, многие редакторы позволяют пересохранить файл в нужной кодировке.
Кроме того, чтобы избежать возможных проблем, стоит проследить, чтобы помимо кодировки файлов, использовался символ переноса - LF ("\n"), а не CRLF ("\r\n"). Хотя, можно настроить Git, чтобы он автоматически конвертировал при коммите.