Html.TextboxFor in .NET MVC with Code Examples

Html.TextboxFor is a useful tool in .NET MVC for creating text boxes with dynamic functionality. It's a powerful tool that can be used in a variety of ways. In this article, we'll explore how to use Html.TextboxFor and provide several code examples to help illustrate its functionality.

Creating a Basic TextBoxFor

Creating a basic TextBoxFor is relatively straightforward. Here's a simple example:

@Html.TextBoxFor(model => model.Name)

This code will generate a basic text box that is bound to the "Name" property of the model.


Adding CSS Classes to TextBoxFor

Adding CSS classes to TextBoxFor is a great way to style your text boxes. Here's an example of how to add a CSS class to TextBoxFor:

@Html.TextBoxFor(model => model.Name, new { @class = "form-control" })

In this example, we've added the "form-control" class to the text box, which will apply Bootstrap styling to the text box.


Creating a Custom TextBoxFor Template

Creating a custom template for TextBoxFor is useful when you want to create a consistent look and feel for your text boxes. Here's an example of how to create a custom template for TextBoxFor:

@Html.TextBoxFor(model => model.Name, new { @class = "form-control", @placeholder = "Enter your name" })

In this example, we've added a placeholder text to the text box to help guide the user.


Using TextBoxFor with Model Binding

Model binding is a powerful feature in .NET MVC that allows you to automatically map HTTP requests to your model. Here's an example of how to use TextBoxFor with model binding:

@Html.TextBoxFor(model => model.Name, new { @class = "form-control" })

In this example, we've bound the "Name" property of the model to the text box, which will allow the text box to automatically update when the model changes.


Using TextBoxFor with HtmlAttributes

HtmlAttributes allow you to add additional attributes to your HTML elements. Here's an example of how to use HtmlAttributes with TextBoxFor:

@Html.TextBoxFor(model => model.Name, new { @class = "form-control", @maxlength = 50 })

In this example, we've added a maximum length of 50 characters to the text box.


Using TextBoxFor with EditorFor

EditorFor is similar to TextBoxFor, but it provides additional functionality for editing complex data types. Here's an example of how to use EditorFor with TextBoxFor:

@Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })

In this example, we're using EditorFor to edit the "Address" property of the model, and we've added a CSS class to the text box.


Using TextBoxFor with a Placeholder

Placeholders are a great way to provide additional guidance to the user. Here's an example of how to use a placeholder with TextBoxFor:

@Html.TextBoxFor(model => model.Name, new { @class = "form-control", @placeholder = "Enter your name" })

In this example, we've added a placeholder text to the text box to help guide the user.


Using TextBoxFor with Validation

Validation is an important aspect of any form. Here's an example of how to use validation with TextBoxFor:

@Html.TextBoxFor(model => model.Email, new { @class = "form-control", @required = "required" })
@Html.ValidationMessageFor(model => model.Email)

Using TextBoxFor with Model Binding

One of the most powerful features of TextBoxFor is that it can be used with model binding, which allows you to easily map a form's values to a model. Here's an example of how to use it:

@model MyModel

@using (Html.BeginForm())
{
    @Html.TextBoxFor(m => m.FirstName)
    @Html.TextBoxFor(m => m.LastName)
    <input type="submit" value="Submit" />
}

In this example, we're using TextBoxFor to create text boxes for FirstName and LastName properties of our MyModel model. When the form is submitted, the values entered in these text boxes will be automatically mapped to the FirstName and LastName properties of the MyModel object.


Using TextBoxFor with HTML Attributes

You can also use TextBoxFor to add HTML attributes to your text boxes. This can be useful for adding custom classes or IDs, or for specifying the type of input (such as email, phone, etc.). Here's an example:

@Html.TextBoxFor(m => m.Email, new { @class = "form-control", @type = "email" })

In this example, we're adding the form-control class and email type to the Email text box.


Using TextBoxFor with Custom HTML

Sometimes you may want to customize the HTML markup of your text box. In such cases, you can use the TextBoxFor method to generate the input field, and then add custom HTML markup around it. Here's an example:

<div class="form-group">
    @Html.LabelFor(m => m.Email, new { @class = "control-label" })
    <div class="input-group">
        <span class="input-group-addon"><i class="fa fa-envelope"></i></span>
        @Html.TextBoxFor(m => m.Email, new { @class = "form-control", @placeholder = "Email" })
    </div>
</div>

In this example, we're wrapping the text box inside a div with the form-group class, and adding an icon to the left of the text box using the input-group-addon class. We're also using the LabelFor method to create a label for the text box.



TextBoxFor is a versatile HTML helper method in ASP.NET MVC that simplifies the process of creating text boxes in your views. Whether you're working with simple text boxes or complex form inputs, TextBoxFor makes it easy to create the HTML markup you need. By leveraging its many features, you can create form inputs that are both functional and visually appealing.

 
About Us | Terms of Use | Privacy Policy | Disclaimer | Contact Us Copyright © 2012-2024 CodingFusion
50+ C# Programs for beginners to practice