我想創建一個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