Я бы лично порекомендовал вам , а не , чтобы реализовать это в качестве промежуточного программного обеспечения.Как вы можете видеть из своей собственной реализации, вы читаете весь ответ в память просто для того, чтобы иметь возможность заменить его.Это действительно неэффективно и мешает вам передавать ответ. BrowserLink делает это путем изменения потока, как это происходит , чтобы это было более эффективным.
Но вы должны рассмотреть возможность перемещения этой логики в MVC.Конечно, это предполагает, что вам не нужно изменять статическое содержимое файла.Но в MVC вы могли бы написать фильтр результатов , который будет выполняться только тогда, когда создается ViewResult
(т.е. когда визуализируется представление MVC).И в этом фильтре вы можете затем изменить результат просмотра, чтобы установить некоторые параметры для внедрения этого скрипта.
А внутри MVC я бы просто добавил помощник по тегам или какой-то раздел в ваш макет, в котором вы могли бы затемвизуализировать ваш скрипт скриптТаким образом, вы будете иметь полный контроль над макетом и сможете легко интегрировать его с MVC.
При этом, чтобы избежать использования промежуточного программного обеспечения для несвязанных ответов, конечно, вы также можете просто переместить проверку Response.ContentType
далее, так что вы фактически не читаете ответ в поток памяти для ответов, которые вам не нужно изменять.