public MvcHtmlString Build() { var table = new TagBuilder("table"); table.AddCssClass("table"); var tableHeader = new TagBuilder("tr"); foreach (var column in _columns) { var th = new TagBuilder("th"); th.InnerHtml = _helper.DisplayName(column.ToString()).ToString(); tableHeader.AddInnerTag(th); } var thf = new TagBuilder("th"); tableHeader.AddInnerTag(thf); foreach (var model in _source) { var tableRow = new TagBuilder("tr"); foreach (var column in _columns) { var td = new TagBuilder("td") { InnerHtml = column.Compile()(model).ToString() }; tableRow.AddInnerTag(td); } var tdf = new TagBuilder("td") { InnerHtml = "Edit" }; tableRow.AddInnerTag(tdf); table.AddInnerTag(tableRow); } //table.AddInnerTag(tableHeader); return(new MvcHtmlString(table.ToString())); }