Criar método de extensão para produzir tags de abertura e fechamento, como Html.BeginForm ()

Gostaria de saber se é possível criar um método de extensão que tenha funcionalidade e comportamento semelhante ao Html.BeginForm (), pois ele geraria uma tag Html completa e eu poderia especificar seu conteúdo dentro<% { & } %> Tag.

Por exemplo, eu poderia ter uma visão como:

<% using(Html.BeginDiv("divId")) %>
<% { %>
    <!-- Form content goes here -->
<% } %>

Esse recurso seria muito útil no contexto da funcionalidade que estou tentando produzir com o exemplo emessa questão

Isso me daria a capacidade de criar contêineres para os tipos que eu serei

<% var myType = new MyType(123, 234); %>
<% var tag = new TagBuilder("div"); %>

<% using(Html.BeginDiv<MyType>(myType, tag) %>
<% { %>
    <!-- controls used for the configuration of MyType  -->
    <!-- represented in the context of a HTML element, e.g.:  -->

    <div class="MyType" prop1="123" prop2="234">
        <!-- add a select here -->
        <!-- add a radio control here -->
        <!-- whatever, it represents elements in the context of their type -->
    </div>

<% } %>

Sei que isso produzirá XHTML inválido, mas acho que poderia haver outros benefícios que superam isso, principalmente porque esse projeto não exige que o XHTML valide os padrões do W3C.

obrigado

Dave

questionAnswers(1)

yourAnswerToTheQuestion