我需要将webform的一些用户控件构建转换为html助手。
例如,我需要将下面的自定义控件转换为html helper:
public class DisGrid : Panel
{
protected override void Render(HtmlTextWriter writer)
{
writer.WriteLine("<div class=\"disgrid\"><div>");
base.Render(writer);
writer.WriteLine("</div></div>");
}
}
我该怎么做?
我是这样做的,但我得到一个错误,说DisclaimerWidget没有实现继承的抽象成员&#39; project1.Helpers.HtmlWidget.BeginWidget()&#39;
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>");
}
}
还是有另一种方法可以做到这一点?
以及如何在视图中使用它?
答案 0 :(得分:1)
要回答您的第一个问题,请将protected void BeginWidget()
更改为protected override void BeginWidget()
至于你的第二个问题,我不熟悉HtmlWidget
基类。我过去看过小部件的方式是调用@Html.Partial()
或使用Html.Action()
。我相信有一些开源项目也会为小部件添加HtmlHelper
扩展名。
http://www.scala-lang.org/old/node/137是介绍Html.Partial()
http://mvc4beginner.com/Tutorial/MVC-Partial-Views.html是一个很好的资源,可以解释Html.Action()
及其与Html.Partial()
的区别