прокатка моего собственного @ Html.BeginfBrm ()

Я пишу настраиваемый набор проверки, который будет отображать все отсутствующие элементы на div. Я хотел бы иметь возможность использовать собственный (скрытый) метод, который будет записывать этот div, но я действительно не уверен, с чего даже начать, поскольку этот орех немного сложнее взломать, чем просто расширение html, которое записывает Тег или строка (форма инкапсулирует данные / элементы управления и закрывается } в конце).

Я просмотрел версию метаданных встроенного метода BeginForm () и мне это не сильно помогло. По сути, я просто хочу расширить этот метод, если это возможно, и сделать так, чтобы он выписывал MvcHtmlString из div , который будет отображаться / скрыт из JavaScript.

в конечном итоге там, где я пытается придумать, как написать этого специального помощника, у которого есть начальный и конечный компоненты.

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

}

Я бы хотел сделать что-то вроде этого:

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

}

и сделать так, чтобы он отображал мой дополнительный html

EDIT : добавление кода из предложенного ниже

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>");
    }
}
7
задан Chris Schiffhauer 31 July 2016 в 23:48
поделиться