如何在mvc3中创建自定义过滤器工具栏html帮助器



我在这个问题上挣扎了很长时间了。我需要创建一个自定义的mvc3 html帮助器,以方便过滤器和工具栏管理。

所有的helper应该看起来像下面这样或类似的东西。我想做的是有一个助手,我可以给工具栏按钮和过滤字段,它为我生成一个工具栏和过滤表单。

我只是不能弄清楚,因为我是相当新的asp.net mvc

@Html.Toolbar(x => {
   x.AddFilterButton();
   x.AddButton("Naujas");
   x.AddDropDownList();
   },
   @<text>
   @Html.EditorFor(Model.ListFilter.Name)
   Filter
   ResetFilter
   </text>,
   filterVisible: false)

我怎么能做到这一点?任何帮助将非常感谢。谢谢。

像这样:

public static class ToolbarExtensions {
    public static Toolbar Toolbar<T>(this HtmlHelper<T> html) {
        return new Toolbar();
    }
}
public class Toolbar : IHtmlString {
    public string ToHtmlString() { /* build your HTML off the state here */ }
    public Toolbar AddButton(string label) {
        /* build up state here */
        return this;
    }
}

这里的语法会有一点不同,而不是lambda,看起来像这样:

@Html.Toolbar().AddButton("Button 1").AddButton("Button 2")

但是您可以很容易地将其更改为在lambda中使用链接对象而不是在Toolbar方法调用中使用。

IHtmlString接口告诉ViewEngine在遇到对象时将其输出为原始HTML。在修改对象状态后,通过在方法中返回当前实例来实现链接。

最新更新