自定义 Html 助手问题
custom Html helper issue
我需要将 webform 的一些用户控件构建转换为 html 助手。
例如,我需要将下面的自定义控件转换为 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>");
}
}
或者还有其他方法吗?
以及如何在视图中使用它?
要回答您的第一个问题,请将 protected void BeginWidget()
更改为 protected override void BeginWidget()
关于你的第二个问题,我不熟悉 HtmlWidget
基地 class。我过去看到小部件的方式是调用 @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()
的区别
我需要将 webform 的一些用户控件构建转换为 html 助手。
例如,我需要将下面的自定义控件转换为 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>");
}
}
或者还有其他方法吗?
以及如何在视图中使用它?
要回答您的第一个问题,请将 protected void BeginWidget()
更改为 protected override void BeginWidget()
关于你的第二个问题,我不熟悉 HtmlWidget
基地 class。我过去看到小部件的方式是调用 @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()