public static string AwesomeDisplay(this IFubuPage page, object model) { var type = model.GetType(); var result = new StringBuilder(); var tags = page.Tags(model); var sl = page.Get <IServiceLocator>(); tags.SetProfile(AwesomeConfiguration.TagProfile); var tr = new HtmlTag("tr"); foreach (var prop in getProperties(type)) { var p = new SingleProperty(prop, type); var elementRequest = new ElementRequest(model, p, sl); var accessRight = page.Get <IFieldAccessService>().RightsFor(elementRequest); HtmlTag display = tags.DisplayFor(elementRequest).Authorized(accessRight.Read); var td = new HtmlTag("td").Append(display); tr.Append(td); } var editLink = new LinkTag("Edit", page.EditUrlFor(model)); tr.Append(new HtmlTag("td").Append(editLink)); var deleteLink = new LinkTag("Delete", page.DeleteUrlFor(model)); tr.Append(new HtmlTag("td").Append(deleteLink)); result.Append(tr.ToString()); return(result.ToString()); }