2015-07-17 5 views
0

Мне нужно преобразовать некоторую сборку пользовательского управления для webform в html-помощники.custom Html helper issue

Так, например, мне нужно, чтобы преобразовать пользовательские элементы управления ниже HTML хелпер:

public class DisGrid : Panel 
    { 
     protected override void Render(HtmlTextWriter writer) 
     { 
      writer.WriteLine("<div class=\"disgrid\"><div>"); 
      base.Render(writer); 
      writer.WriteLine("</div></div>"); 
     } 
    } 

Как я могу это сделать?

Я сделал это так, но я получил сообщение об ошибке сказав, что DisclaimerWidget не реализует унаследованный абстрактный член «project1.Helpers.HtmlWidget.BeginWidget()»

public class DisGridWidget : HtmlWidget 
    { 

     public DisGridWidget(ViewContext viewContext) : base(viewContext) 
     { 
      this.BeginWidget(); 
     } 

     protected void BeginWidget() 
     { 
      var sb = new StringBuilder(); 
      sb.AppendFormat("<div class='disgrid'><div>"); 


      this._textWriter.WriteLine(sb.ToString()); 
     } 

      protected override void EndWidget() 
     { 
      this._textWriter.WriteLine("</div></div>"); 
     } 
    } 

или есть S другой способ сделать это?

и как использовать его для просмотра?

+2

Попробуйте изменить защищенную недействительный BeginWidget(), чтобы защищенные переопределения недействительного BeginWidget(). – Middas

+0

@ Middas исправил ошибку. спасибо. Как я могу использовать помощника в представлении? – YosrJ

ответ

1

Чтобы ответить на ваш первый вопрос, изменить protected void BeginWidget() к protected override void BeginWidget()

Что касается вашего второго вопроса, я не знаком с HtmlWidget базового класса. То, как я видел виджеты, сделанные в прошлом, - это позвонить по телефону @Html.Partial() или с помощью Html.Action(). Я считаю, что есть некоторые проекты с открытым исходным кодом, которые добавляют расширение HtmlHelper для виджетов.

http://mvc4beginner.com/Tutorial/MVC-Partial-Views.html является большим ресурсом для введения Html.Partial()

http://pratapreddypilaka.blogspot.com/2011/11/htmlpartial-vs-htmlaction-mvc-razor.html большого ресурс, который объясняет Html.Action() и как она отличается от Html.Partial()