我想创建一个HtmlHelper扩展方法,它允许你设置模型实例,然后绑定这个模型的属性来渲染一些html。HtmlHelper绑定模型属性。 Fluent Interface
这将会跟在Telerik Grid附近的类似模式。
在以下示例中,我们看到我们将Model
设置为网格的DataContext。 然后声明一些列。 Foreach专栏中,他们将模型绑定到IEnumerable
。因此,当网格呈现行时,相应的属性将从该行的模型实例绑定。
@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.OrderID).Width(100);
columns.Bound(o => o.ContactName).Width(200);
columns.Bound(o => o.ShipAddress);
columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(120);
})
.Scrollable(scrolling => scrolling.Enabled((bool)ViewData["scrolling"]))
.Sortable(sorting => sorting.Enabled((bool)ViewData["sorting"]))
)
基本上,我想就如何实施Bound
方法的想法。对于我的情况,该模型也将是IEnumerable
。所以可以说我有一个模型,它是List<MyObj>
为了讨论起见,MyObj
看起来是这样的:
public class MyObj
{
public bool IsRegistered { get; set;}
public string Name { get; set; }
}
我想最终在视图中调用一个会使我的名单,并期待一个的HtmlHelper这样的事情:
@(Html.MyHelpers().MyList(Model)
.ControlOne.Bound(o => o.IsRegistered)
.ControlTwo.Bound(o => o.Name)
)
我还没有尝试过很多,说实话我不知道如何实现这一点。所以我会发布更新,因为这将是一项正在进行的工作。但是,如果有任何想法或建议,我将不胜感激。我知道我可以使用网格,但这个帮助器的重量更轻,因为我不需要太多的功能,也不想为此目的拖动telerik网格。
谢谢!
这正是我需要这个东西工作的例子。谢谢! +1 – Gabe