我现在已经有一段时间了。我需要创建一个自定义的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)
我怎么能做到这一点?任何帮助都会非常苛刻。非常感谢。
答案 0 :(得分:2)
这样的事情:
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。通过在修改对象状态后返回方法中的当前实例来实现链接。