Поскольку вы пометили его как MVC, я собираюсь предложить вам сделать что-то вроде того, что я опубликовал на моем блоге , чтобы получить подсветку синтаксиса для шаблонов, поскольку решение будет очень похожим, ЕСЛИ вам не нужно манипулировать внутренним содержимым, и вы просто заинтересованы в том, чтобы «обернуть» его каким-то образом (например, в содержащий элемент, который требует некоторой дополнительной логики).
Используя метод, метод HtmlHelper получает контекст блока.Синтаксис немного отличается от предложенного вами метода.
Например, у вас может быть что-то вроде:
@using(Html.MyTextArea("txt1"))
{
<some HTML content here>
}
Контекст передается объекту IDisposable, который включает Writer (для записив текущий поток вывода).Там он может выводить несколько элементов или выполнять другие манипуляции по мере необходимости.Dispose используется для записи закрывающего элемента (при необходимости).
Итак, вы можете получить что-то вроде этого:
<textarea><some HTML content here></textarea>
Однако, как я уже говорил, это не обеспечиваетвнутреннее содержание самой функции.
Поскольку страницы Razor визуализируются наизнанку, не существует эффективного способа получить результат так, как вы хотите.Есть posts о кэшировании вывода Partial в строку (что означает, что внутреннее содержимое в вашем примере будет находиться в другом файле, файле .ascx), так что вы можете посмотреть нате.