HTML and CSS Reference
The TextBoxFor() helper function uses the metadata attributes to generate HTMl like this:
<input name="UserName" id="UserName" type="text"
data-val-required="The User name field is required."
specifically, the data-val and data-val-required HTMl attributes are generated. The view also includes
these jQuery libraries:
more information, see the article at: http://rachelappel.com/asp-net-mvc/how-data-annotations-for-asp-net-
Adding a Feedback Page
You will now create a feedback form and use this to demonstrate how to implement the new HTML5 capabilities.
You'll start by creating a model and then implement a strongly-typed view based on this model. You'll then add a
controller action as well as a link to the new page.
■ Adding a page to the web application usually involves adding a model, adding a view, and creating or
modifying a controller. The MVC pattern allows these to be developed separately and in a large project you will often
have different people responsible for the views and models. You may be able to use an existing model. However, in a
small project like this, where you are the sole developer, you will generally need to touch all three areas to add a page.
Creating the Feedback Model
A model defines the data elements that can be included on your page. By designing the model first, you can
simplify the view implementation.
In the Solution Explorer, right-click the Models folder and select the Add ➤ Class links and enter
FeedbackModel for the class name. Click the OK button to create the class. For the class implementation, enter
the code shown in Listing 3-2.
■ The view files use the new Razor syntax and have the .cshtml (or . vbhtml ) extension. However, the model
and controller files are standard C# (or Vb) classes.
Listing 3-2. The FeedbackModel class