Skip to main content

Function in Razor view (@helper in razor)


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 iterated over to generate unordered list of the data.

For Complete working  code please refer to my post : Implementing  JsTree in Asp.net MVC


Comments

Popular posts from this blog

Using SqlDataAdapter to fill DataTable in c#

public DataTable List(string sql)         {             SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);             SqlCommand cmd = new SqlCommand(sql, con);             DataTable dt = new DataTable();             SqlDataAdapter da = new SqlDataAdapter(cmd);             try             {                              con.Open();                 da.Fill(dt);             }             finally             {                 con.Close();          ...

Connection String in ASP.NET With SQL Server

Connection string can be placed in web.config file found in root directory of the application from .NET 3.5 onward. connection string can be specified with an xml tag  <connectionStrings>  inside  <configuration>  section of web.config file. < connectionStrings > < add name = "myConnectionString" connectionString = "Data Source=databaseServerName; database=database-name; uid=sqlUserName;password=sqlPassword; Integrated Security =True|false|SSPI (any one options) ; " providerName = " System.Data.SqlClient System.Data.SqlClient" /> </ connectionStrings > We can use local database server of SQL Server by using Data Source= (LocalDb)\MSSQLLocalDB we can attach a local database file to the app_data directory by using the property AttachDBFilename=|DataDirectory|\appDatabaseName.mdf in the connection string Connection String can be ...