на мой взгляд, для решения это задачи лучше бы подошло создание своего варианта ActionMethodSelectorAttribute, который призван выбирать необходимое действие из нескольких. определив два одинаковых по названию действия с разными параметрами, и пометив их таким атрибутом вы бы могли определить когда и какой должен вызваться
тогда у вас были бы такие например запросы:
ht_p://localhost/Blog/Comments/0.
и
ht_p://localhost/Blog/Comments/0/json или к примеру ht_p://localhost/Blog/Comments/0/?get=json
обработав в ActionMethodSelectorAttribute наличие парамера маршрута (первый случай) или параметра запроса get вы могли бы позволить выбрать нужное действие
на мой взгляд это гораздо лучше смешивания в одну кучу двух вариантов действия. я думаю, действие должно возвращаеть только один результат одного типа
Лямбды в данном случае нужны для указания действий, которые необходимо выполнить.
В зависимости от условий запроса ComplexResult сам выберет, что необходимо вернуть Json или View.
Я правильно понял вопрос?
ActionResult на все случаи жизни