Создать метод расширения для создания открывающих и закрывающих тегов, таких как Html.BeginForm ()

Интересно, возможно ли создать метод расширения, который по функциональности и поведению похож на Html.BeginForm (), так как он генерирует полный тег Html, и я могу указать его содержимое внутри<% { & } %> теги.

Например, я мог бы иметь вид:

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

Эта возможность была бы очень полезна в контексте функциональности, которую я пытаюсь создать на примере вэтот вопрос

Это дало бы мне возможность создавать контейнеры для типов, которыми я буду

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

<% } %>

Я понимаю, что это приведет к недопустимому XHTML, но я думаю, что могут быть и другие преимущества, которые перевешивают это, тем более что этот проект не требует, чтобы XHTML соответствовал стандартам W3C.

Спасибо

Дейв

Ответы на вопрос(1)

Ваш ответ на вопрос