or
public class Switch{ [DisplayName("Switch Id")] public string SwitchId { get; set; }}public class UserConsoleViewModelsController : Controller{ public ActionResult FilteredSwitches_Read([DataSourceRequest]DataSourceRequest request) { var filteredSwitches = GetFilteredSwitches().ToDataSourceResult(request); //3 records are here at runtime return Json(filteredSwitches); } private IEnumerable<Switch> GetFilteredSwitches() { return db.Switches.ToList(); }}@(Html.Kendo().Grid<Switch>() .Name("grid") .Columns(columns => { columns.Bound(c => c.SwitchId).Width(140); }) .HtmlAttributes(new { style = "height: 380px;" }) .Scrollable() .Groupable() .Sortable() .Pageable(pageable => pageable .Refresh(true) .PageSizes(true) .ButtonCount(5)) .DataSource(dataSource => dataSource .Ajax() .Read(read => read.Action("FilteredSwitches_Read", "UserConsoleViewModels")) )$(e.item).children(".k-link").text();var menuItemOption2 = menuItems.Add().Text(child.Text).HtmlAttributes(new {@id=child.Oid.ToString()});@model IList<ModelMenuItem>@functions{ public void addCategoryChildren(MenuItemBuilder builder, string parentCategory, IList<ModelMenuItem> items) { var children = items.Where(m => m.Category == parentCategory); if (children != null) { builder.Items(menuItems => { foreach (var child in children) { var menuItemOption1 = menuItems.Add().Text(child.Text).Action("GetReports", "Reports",new {Oid=child.Oid}); //var menuItemOption2 = menuItems.Add().Text(child.Text).HtmlAttributes(new {@id=child.Oid.ToString(), data-reportoid=child.Oid.ToString()}); } }); } }}@{ var categories = Model.Select(x => x.Category).Distinct().ToList();}<div id="workflowToolbar"> @(Html.Kendo().Menu() .Name("mnuReports") .Items(topMenu => { foreach (var cat in categories) { var builder= topMenu.Add().Text(cat.ToString()); addCategoryChildren(builder, cat.ToString(), Model); } }) .Events(e=>e.Select("reportSelectChanged")) )</div>