MVC - это шаблон проектирования, который заключается в разделении интересов.Я часто слышу, что JavaScriptResult следует избегать, поскольку он нарушает этот принцип.По моему мнению, вы должны помнить, что MVC предоставляет вам мощные инструменты, но вам решать, что вы будете с ними делать.JavaScript XHR / Ajax может предоставить больше, чем только рендеринг с графическим интерфейсом, но его следует использовать с осторожностью.Что ж, факт заключается в том, что можно упустить даже самые простые методы, но это не значит, что мы не должны их использовать:)
Конечно, использование JavaScript на вашей странице и подача его с помощью JSON прекрасно ипредпочтительнее, в большинстве случаев этого достаточно.Однако иногда вам нужно будет выбрать, хотите ли вы, чтобы он был на 100% совместим с шаблоном MVC или принципом СУХОЙ / другой хорошей практикой.Я думаю, что лучше делать то, что, по вашему мнению, имеет смысл в конкретной ситуации.
Давайте возьмем метод GetContainerUpdateScript помощника WebGrid http://msdn.microsoft.com/en-us/library/system.web.helpers.webgrid.getcontainerupdatescript(v=vs.99).aspx он предоставляет jquery oneliner для обновления данных вашей веб-сетки.В этом случае все это в представлении, но похожий код может быть частью контроллера - скажем, сценарий, который создает кучу запросов POST на основе некоторого уникального идентификатора (например, подобного sessionID).
По моему мнению, есть худшие вещи, чем наступать на тонкую красную линию между View и Controller (а иногда и слегка пересекать ее), чтобы избежать других проблем, сделать ваш код чище, более пригодным для повторного использования и ремонтопригодным.