In this article I will explain with an example, how to set HTML5 placeholder attribute in TextBox using HTML.TextBoxFor and HTML.TextBox helper methods in ASP.Net MVC.
Note: For beginners in ASP.Net MVC, please refer my article ASP.Net MVC Hello World Tutorial with Sample Program example.
 
 

Model

The Model class consists of following property.
public class PersonModel
{
    ///<summary>
    /// Gets or sets Name.
    ///</summary>
    public string Name { getset; }
}
 
 

Controller

The Controller consists of following Action method.

Action method for handling GET operation

Inside this Action method, an object of PersonModel class is created and is returned to the View. The value of the Name property will be set in the TextBox created using Html.TextBoxFor and Html.TextBox helper methods.
public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        PersonModel person = new PersonModel
        {
            Name = ""
        };
 
        return View(person);
    }
}
 
 

View

HTML Markup

Inside the View, in the very first line the PersonModel class is declared as Model for the View.
The View consists of two HTML INPUT TextBoxes created using Html.TextBoxFor and Html.TextBox Html helper methods.

Html.TextBoxFor

The TextBox created using Html.TextBoxFor is set with following properties:
model property – The name of the property is set using Lambda expression.
htmlAttributes – An object that contains the HTML attributes to set for the element. In this case it is placeholder.
 

Html.TextBox

The TextBox created using Html.TextBox is set with following properties:
name – The name of the form field. In Controller the TextBox value is captured using this parameter.
value– The value of the text input element.
htmlAttributes – An object that contains the HTML attributes to set for the element. In this case it is placeholder.
@model TextBox_Placeholder_MVC.Models.PersonModel
@{
    Layout = null;
}
 
<!DOCTYPE html>
 
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    @Html.TextBoxFor(m => m.Name, new { @placeholder = "Mudassar Khan" })
    @Html.TextBox("Country", "", new { @placeholder = "India" })
</body>
</html>
 
 

Screenshots

Html.TextBox and Html.TextBoxFor set placeholder attribute in ASP.Net MVC
 

Rendered Page

Html.TextBox and Html.TextBoxFor set placeholder attribute in ASP.Net MVC
 
 

Downloads