rollando mi propio @ Html.BeginfBrm ()

Estoy escribiendo un conjunto de validación personalizado que mostrará todos los elementos que faltan en un div. Me gustaría poder usar una @ personaliza@Html.BeginForm() método que escribirá ese div pero realmente no estoy seguro de dónde comenzar, ya que esta tuerca es un poco más difícil de descifrar que solo una extensión html que escribe una etiqueta o cadena (el formulario encapsula datos / controles y está cerrado por} al final)

Vi la versión de metadatos del construido enBeginForm() método y no fue de mucha ayuda para mí. Esencialmente, solo quiero extender ese método si es posible y hacer que escriba unMvcHtmlString de undiv que se mostrará / ocultará de JavaScript.

n última instancia, donde estoy luchando es descubrir cómo escribir este asistente personalizado que tiene el componente inicial y fina

@using(Html.BeginForm())
{
...

}

Me gustaría poder hacer algo como esto:

@using(Html.VBeginForm())
{
...

}

y hacer que rinda mi html extra

EDIT: agregando código de la sugerencia a continuación

public class VBeginForm : IDisposable
{
    private readonly HtmlHelper _helper;
    public VBeginForm(HtmlHelper htmlHelper, string areaName)
    {
        _helper = htmlHelper;
        var container = new TagBuilder("form");
        container.GenerateId(areaName);
        var writer = _helper.ViewContext.Writer;
        writer.Write(container.ToString(TagRenderMode.StartTag));
    }

    public void Dispose()
    {
        _helper.ViewContext.Writer.Write("</form>");
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta