В лучших сценариях старайтесь избегать их как можно больше. Они начинаются довольно просто, но позже все это может превратиться во множество спагетти-кода. Сказать, что это не всегда возможно и почти неизбежно, что вам придется их делать.
Обычно вы разделяете свои представления или (имеете несколько частичных представлений), а затем решаете бит if / else на контроллере. Это гарантирует, что ваши ViewModels тоже будут разными.
-
Как показывает практика, из своего опыта я всегда стараюсь понять бизнес-точку зрения, а не техническую. Иногда ваши два представления могут выглядеть очень похожими прямо сейчас и, возможно, просто потребуется пара if / else, чтобы различать друг друга, НО в бизнесе они различны, и очевидно, что в конечном итоге каждое представление будет иметь много новых требования, которые сделают его полностью отличным от другого взгляда. Принимая во внимание бизнес-перспективы, вы должны создать отдельные представления и модели представления для обоих.