Strongly typed html helpers are introduced in MVC 2. In this kind of helpers we can generate html markup or view using model properties and lambda expression. These methods use a “Html.HelperNameFor()” naming convention. for example we have created model property like public string username{get;set;} We can create text box for username property in following way
@Html.TextBoxFor(m=>m.username)
HTML Element Helpers:
- Html.TextBoxFor()
- Html.TextAreaFor()
- Html.DropDownListFor()
- Html.CheckboxFor()
- Html.RadioButtonFor()
- Html.ListBoxFor()
- Html.PasswordFor()
- Html.HiddenFor()
- Html.LabelFor()
Lets take an example where we are creating a registration form and going to show filled values on the same view.
Step1. Open VisualStudio=>Create New Project->Select Web in Visual C#->Asp.net web application->Select Empty and check MVC Checkbox
Step 2: Create a model “Employee.cs”
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace StateManagement.Models
{
public class Employee
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; }
public string Address { get; set; }
public string state { get; set; }
public string[] hobbies { get; set; }
}
}
Step3: Create New Controller “Student”
Step 4: CReate new action strongly.
public ActionResult Strongly()
{
return View();
}
Step 5: Add View and pass model reference into newly created view.
@model StateManagement.Models.Employee
@{
Layout = null;
}
@helper getall(string[] args)
{
-
@foreach (var item in args)
{
- @item }
@Html.TextBoxFor(m => m.EmployeeName)
@Html.TextBoxFor(m => m.Address)
@Html.DropDownListFor(m => m.state, new SelectList(new[] { "Raj", "UP", "MP" }))
@Html.ListBoxFor(m => m.hobbies, new MultiSelectList(new[] { "Reading", "Writing", "Internet" }))
}
EmployeeId
@ViewBag.EmployeeIdEmployeeName
@ViewBag.EmployeeNameAddress
@ViewBag.AddressHobbies
@getall((string[])ViewBag.hobbies)State
@ViewBag.State} }
In above code I created a simple registration form where I have taken dropdown and listbox also.I listbox we are taking hobbies from user and user can select multiple properties.
if block(if (@ViewBag.EmployeeId != null)) will work only after data submitted by end user and it is showing the filled values.
Step 6 : Now Write following code into student controller.
[HttpPost]
public ActionResult Strongly(Employee empobj)
{
ViewBag.EmployeeId = empobj.EmployeeId;
ViewBag.EmployeeName = empobj.EmployeeName;
ViewBag.Address = empobj.Address;
ViewBag.state = empobj.state;
ViewBag.hobbies =(string[])empobj.hobbies;
return View();
}
Now run and execute above code .
Output

