We can create function in cshtml by using @helper syntax syntax: @helper <FunctionName>(paramtype param1) { //your custom logic } Here the function is same as the one we write in class file except "@helper" . This function can be invoked from any where in the view simply like this @FunctionName(param1); @helper syntax enables in code reusability scenario : Following code implements recursive function using @helper in view @helper Recurson(IEnumerable<Menu> nodes, int? parentId) { if (nodes.Any(n => n.ParentId == parentId)) { <ul> @foreach (var node in nodes.Where(n => n.ParentId == parentId)) { <li> @node.Name @Recursion(node.Menus, node.Id) </li> } </ul> } } @Recurson(Model.Menus, Model.Id) In Above Code Menu Contains hierarchical data which will be itera