Cree un método de extensión para producir etiquetas de apertura y cierre como Html.BeginForm ()

Me pregunto si es posible crear un método de extensión que tenga una funcionalidad y un comportamiento similar a Html.BeginForm (), ya que generaría una etiqueta Html completa y podría especificar su contenido dentro<% { & } %> Etiquetas

Por ejemplo, podría tener una vista como:

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

Esta capacidad sería muy útil en el contexto de la funcionalidad que estoy tratando de producir con el ejemplo enesta pregunta

Esto me daría la posibilidad de crear contenedores para los tipos que seré

<% 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>

<% } %>

Me doy cuenta de que esto producirá XHTML no válido, pero creo que podría haber otros beneficios que superen esto, especialmente porque este proyecto no requiere que XHTML valide los estándares W3C.

Gracias

Dave

Respuestas a la pregunta(1)

Su respuesta a la pregunta