Asp MVC 4 tworzenie niestandardowej metody pomocniczej HTML podobnej do Html.BeginForm

Mam następujący html:

<div data-bind="stopBindings">

    <div data-viewId="languageList" data-bind="with: viewModel">
       <table>
              <tr>
                   <td ><label for="availableLanguages">Available Languages:</label></td>
              </tr>
       <table>
    </div>

</div>

Chcę utworzyć niestandardowy pomocnik HTML i używać go w ten sposób (podobny doHtml.BeginForm)

@Html.BeginView()
{
    <table>
        <tr>
            <td ><label for="availableLanguages">Available Languages:</label></td>
        </tr>
    </table>
}

Zacząłem tworzyć moją metodę pomocy

public static class BeginViewHelper
    {
        public static MvcHtmlString BeginView(this HtmlHelper helper, string viewId)
        {

            var parentDiv = new TagBuilder("div");
            parentDiv.MergeAttribute("data-bind", "preventBinding: true");
            return new MvcHtmlString();
        }

    }

Czytałem, jak zrobić podstawowy pomocnik HTML, ale przykłady, które zobaczyłem, nie dają mi informacji, jak to zrobić w moim przypadku. Jestem bardzo nowy w asp mvc i każda pomoc zostanie bardzo doceniona.

AKTUALIZACJA 2:

Oczywiście coś mi brakuje. Nazywam to moim zdaniem:

@Html.BeginView()
{
    <table>
        <tr>
            <td ><label >test</label></td>
        </tr>
    </table>
}

Wszystko wydaje się w porządku, ma nawet intellisense. Ale wyniki w przeglądarce są następujące:

Omega.UI.WebMvc.Helpers.BeginViewHelper+MyView { 


test

 } 

To jest moja metoda pomocnicza:

namespace Omega.UI.WebMvc.Helpers
{
    public static class BeginViewHelper
    {
        public static IDisposable BeginView(this HtmlHelper helper)
        {
            helper.ViewContext.Writer.Write("<div data-bind=\"preventBinding: true\">");
            helper.ViewContext.Writer.Write("<div data-viewId=\"test\">");

            return new MyView(helper);
        }

        class MyView : IDisposable
        {
            private HtmlHelper _helper;

            public MyView(HtmlHelper helper)
            {
                this._helper = helper;
            }

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

i zarejestrowałem przestrzeń nazw w ~ / Views / web.config

 <add namespace="Omega.UI.WebMvc.Helpers" />

questionAnswers(3)

yourAnswerToTheQuestion