我为此苦苦挣扎了好一阵子。我需要创建一个自定义的 mvc3 html 帮助器,以便于过滤器和工具栏管理。
所有的帮助程序应该看起来像下面这样或类似的东西。我想要做的是有一个助手,我可以在其中提供工具栏按钮和过滤器字段,它会为我生成一个工具栏和过滤器表单。
我就是想不通,因为我是 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
接口(interface)告诉 ViewEngine 在遇到对象时将对象输出为原始 HTML。链接只是通过在修改对象状态后返回方法中的当前实例来实现。
关于asp.net - 如何在 mvc3 中创建自定义过滤器工具栏 html 帮助器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124928/