# Using Razor Syntax

Develop powerful and lightweight web applications with Touch-first, flexible ASP.NET MVC controls and add these controls in your application using the Razor Syntax.

## Content



Learn how to add an ASP.NET MVC control in your application using Razor syntax. Also, observe how to add a model, view and controller in an MVC application. When you use MVC Controls in your web application, it reduces the code complexity, increases flexibility, and helps in reusing the code.


> type=note
> **Note**: Make sure that the required references are included in the project. For more information about references, see [Installation](/componentone/docs/mvc/online-mvc/GettingStarted/Installation).

The following image shows how **ComboBox** control appears after completing the steps above:

![ComboBox event handling performed to create an MVC application using razor syntax](https://cdn.mescius.io/document-site-files/images/2b3ac322-100e-4637-958d-fb40dcda3f44/images/combobox.gif)

### Add a Model

Models are required to fetch data for the controls. A model is to be added only where it is required. This example uses `Cities.cs` model, and steps have been given to explain how to add model in your MVC application.

1.  In the **Solution Explorer**, right click the folder **Models** and select **Add | Class**. The **Add New Item** dialog appears.
2.  In the **New Item** dialog, set the name of the class (for example: `Cities.cs`), and then click **Add**.
3.  Add the following code to Cities.cs model. We are using Cities class to represent a list of countries.
    
    ```csharp
    public class Cities
        {
            public static List<string> GetCities()
            {
                return new List<string> 
                {
                  "Abidjan", "Accra", "Ahmedabad", "Alexandria", "Ankara", "Atlanta", "Baghdad",
                  "Bandung", "Bangkok", "Barcelona", "Beijing", "Belo Horizonte", "Bengaluru",
                  "Bogota", "Boston", "Buenos Aires", "Cairo", "Calcutta", "Chengdu", "Chennai",
                  "Chicago", "Chongqung", "Dalian", "Dallas", "Delhi", "Detroit", "Dhaka",
                  "Dongguan", "Essen", "Fuzhou", "Guadalajara", "Guangzhou", "Hangzhou", "Harbin",
                  "Ho Chi Minh City", "Hong Kong", "Houston", "Hyderabad", "Istanbul", "Jakarta",
                  "Johannesburg", "Karachi", "Khartoum", "Kinshasa", "Kuala Lumpur", "Lagos",
                  "Lahore", "Lima", "London", "Los Angeles", "Luanda", "Madrid", "Manila",
                  "Medellin", "Mexico City", "Miami", "Milan", "Monterrey", "Moscow", "Mumbai",
                  "Nagoya", "Nanjing", "Naples", "New York", "Osaka", "Paris", "Pheonix",
                  "Philadelphia", "Porto Alegre", "Pune", "Qingdao", "Quanzhou", "Recife",
                  "Rio de Janeiro", "Riyadh", "Rome", "Saint Petersburg", "Salvador", "San Francisco",
                  "Santiago", "Sao Paulo", "Seoul", "Shanghair", "Shenyang", "Shenzhen", "Tianjin",
                  "Singapore", "Surabaya", "Surat", "Suzhou", "Sydney", "Taipei", "Tehran",
                  "Toronto", "Washington", "Wuhan", "Xi'an-Xianyang", "Yangoon", "Zhengzhou", "Tokyo"
                };
            }
        }
    ```
    
    A new class is added to the application.
    

### Add a Controller

Controllers are simple class files. They are responsible for handling incoming requests to the application, retrieve data, and then specify view templates that return a response to the client.

1.  In the **Solution Explorer**, right click the folder **Controllers.**
2.  From the context menu, select **Add | Controller**. The **Add Scaffold** dialog appears.
3.  Complete the following steps in the **Add Scaffold** dialog:
    1.  Select **MVC 5 Controller - Empty** template, and then click **Add**.
    2.  Set name of the controller (For example: `ComboBoxController`).
    3.  Click **Add**.
4.  Add the following code to replace the Index() method.
    
    ```csharp
    @using <ApplicationName>.Models
    public ActionResult Index()
    {
        ViewBag.Cities = Cities.GetCities();
        return View();
    }
    ```
    
    A new controller is added to the application within the folder **Controllers**.
    

### Add the Control

View helps the user to view a visual representation of the model. View is most commonly associated with model and retrieves the data required with the help of controllers. We will add a code in the `Index.cshtml` to view **ComboBox** control in the browser.

1.  From the **Solution Explorer**, expand the folder **Controllers** and double click the controller (for example: `ComboBoxController`) to open it.
2.  Place the cursor inside the method `Index()`.
3.  Right click and select **Add View**. The **Add View** dialog appears.
4.  In the **Add View** dialog, verify that the View name is **Index** and View engine is **Razor (CSHTML).**
5.  Click **Add**. A view is added for the controller.

**For View**

1.  From the **Solution Explorer**, expand the folder **Views**.
2.  Double click `Index.cshtml` to open it.
3.  Replace the default code of the `Index.cshtml` file with the code given below to initialize **ComboBox** control.<br />
    
    ```razor
    @{List<string> cities = ViewBag.Cities;}
    <div>
    @(Html.C1().ComboBox().Bind(cities).SelectedIndex(0))
    </div>
    ```

### Apply custom CSS

The appearance of the controls is defined using CSS classes. These classes can be customized further using custom CSS rules to change the appearance of controls. The following example illustrates how you can apply custom CSS to the ComboBox control to customize its appearance. For more information on using custom css, see [Styling and CSS](/componentone/docs/mvc/online-mvc/workwithcontrols/Input/InputCommonFeatures/inputStyling).

```csharp
<style>
    .wj-combobox {
        color: brown;
    }
    .wj-listbox-item {
        font-size: 11pt;
        font-weight: bold;
        font-family:Calibri;
        background-color:burlywood;
    }
</style>
```

### Build and Run the Project

1.  Click **Build | Build Solution** to build the project.
2.  Press **F5** to run the project.


> type=note
> Append the folder name and view name to the generated URL (for example: http://localhost:1234/**ComboBox/index**) in the address bar of the browser to see the view.