【问题标题】:custom Html helper issue自定义 Html 帮助程序问题
【发布时间】:2015-07-17 19:23:48
【问题描述】:

我需要将一些用于 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()。
  • @Middas 它修复了错误。谢谢。如何在视图中使用帮助器?

标签: asp.net-mvc html-helper


【解决方案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() 的不同之处

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多