Если это 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, чтобы он автоматически конвертировал при коммите.