ASP.NET MVC - HTML Helpers
HTML Helpers are used to modify HTML output
HTML Helpers
With MVC, HTML helpers are much like traditional ASP.NET Web Form controls.
Just like web form controls in ASP.NET, HTML helpers are used to modify HTML. But HTML helpers are more lightweight. Unlike Web Form controls, an HTML helper does not have an event model and a view state.
In most cases, an HTML helper is just a method that returns a string.
With MVC, you can create your own helpers, or use the built in HTML helpers.
Standard HTML Helpers
MVC includes standard helpers for the most common types of HTML elements, like HTML links and HTML form elements.
HTML Links
The easiest way to render an HTML link in is to use the HTML.ActionLink() helper.
With MVC, the Html.ActionLink() does not link to a view. It creates a link to a controller action.
Razor Syntax:
@Html.ActionLink("About this Website", "About")
ASP Syntax:
<%=Html.ActionLink("About this Website", "About")%>
The first parameter is the link text, and the second parameter is the name of the controller action.
The Html.ActionLink() helper above, outputs the following HTML:
<a href="/Home/About">About this Website</a>
The Html.ActionLink() helper has several properties:
Property | Description |
---|---|
.linkText | The link text (label) |
.actionName | The target action |
.routeValues | The values passed to the action |
.controllerName | The target controller |
.htmlAttributes | The set of attributes to the link |
.protocol | The link protocol |
.hostname | The host name for the link |
.fragment | The anchor target for the link |
Note: You can pass values to a controller action. For example, you can pass the id of a database record to a database edit action:
Razor Syntax C#:
@Html.ActionLink("Edit Record", "Edit", new {Id=3})
Razor Syntax VB:
@Html.ActionLink("Edit Record", "Edit", New With{.Id=3})
The Html.ActionLink() helper above, outputs the following HTML:
<a href="/Home/Edit/3">Edit Record</a>
HTML Form Elements
There following HTML helpers can be used to render (modify and output) HTML form elements:
- BeginForm()
- EndForm()
- TextArea()
- TextBox()
- CheckBox()
- RadioButton()
- ListBox()
- DropDownList()
- Hidden()
- Password()
ASP.NET Syntax C#:
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the
errors and try again.") %>
<% using (Html.BeginForm()){%>
<p>
<label for="FirstName">First Name:</label>
<%= Html.TextBox("FirstName")
%>
<%= Html.ValidationMessage("FirstName", "*") %>
</p>
<p>
<label for="LastName">Last Name:</label>
<%= Html.TextBox("LastName") %>
<%= Html.ValidationMessage("LastName", "*") %>
</p>
<p>
<label
for="Password">Password:</label>
<%= Html.Password("Password") %>
<%=
Html.ValidationMessage("Password", "*") %>
</p>
<p>
<label
for="Password">Confirm Password:</label>
<%= Html.Password("ConfirmPassword")
%>
<%= Html.ValidationMessage("ConfirmPassword", "*") %>
</p>
<p>
<label for="Profile">Profile:</label>
<%= Html.TextArea("Profile", new
{cols=60, rows=10})%>
</p>
<p>
<%= Html.CheckBox("ReceiveNewsletter")
%>
<label for="ReceiveNewsletter" style="display:inline">Receive
Newsletter?</label>
</p>
<p>
<input type="submit" value="Register"
/>
</p>
<%}%>