Before knowing the steps. the user should understand
what Binding actually means as it is a simple to do and also know as Model
Binding in ASP.NET MVC framework. The purpose of Binding is to take data from
database and store data into database or in other words we can say Binding helps
in retrieving the information and storing information.
It is done with the help of HTTP that carries
the data you need which can be performed by DefaultModelBinder
Now here are the following points that
should be followed while Binding in ASP.NET MVC Application
1. Binding Should be preferred over
Request.Form
That is in case you are writing like this :
[AcceptVerbs(HttpVerbs.Post)]
public
ActionResult Create()
{
Recipe recipe =
new
Recipe();
recipe.Name = Request.Form["Name"];
//
return View();
}
If you use like the above code that will be wrong because the Model Binder can
restrict you from Request and HttpContext
properties.
Another way will be to use FormCollection
parameter
public
ActionResult Create(FormCollection
values)
{
Recipe recipe = new
Recipe();
recipe.Name = values["Name"];
//
return View();
}
In this way user don't need to dig into the Request object but the ultimate way
will be if your data is in Request.Form that should be like this
[AcceptVerbs(HttpVerbs.Post)]
public
ActionResult Create(Recipe
newRecipe)
{
//
return View();
}
As this will bind the object automatically
2. Second point to remember is to use Custom
Model Binder
Extensibility point in the MVC framework is Model Binding that means we can
customize the binding according to our use in place of Default Binding for that
purpose user need to implement the IModeBinder Interface.
public interface
IModelBinder
{
object BindModel(ControllerContext
controllerContext,
ModelBindingContext bindingContext);
}
3. Now third point that should be remember
while binding is Custom Model Binding via Inheritance
As in the second point we got to know about Custom Model Binder
now in this point in which Inheritance is highlighted that will help the user to
cut down the required amount of work by inheriting the DefaultModelBinder and
can add some custom, logic that are required by the user.
4. As while Binding user should use some
validation i.e Data Annotations for Validation
These types of validation that are applied while Binding are generally
used for server-side validation by simply manipulating your model with
attributes .
public class Recipe
{
[Required(ErrorMessage="We
need a name for this dish.")]
[RegularExpression("^Bacon")]
public string Name {
get; set; }
//
}
5. Fifth point to remember is recognize
Binding and Validation as two phase
As binding is to take data from database and store data into database and on
the other hand validation is use for checking the application but if you
want to perform validation along with binding together in a MVC Model Binder
that will be same as DataAnnotationsModelBinder will work
For simple property validation then user can
override the OnPerpertyValidating method.
6. And the last point to remember is Binding
is all about the Environment
As Model Binder helps in separating the code
from the request and its associated environment and binder which means to move
the data from the routing data into the model.In this case there is no
restriction of finding the required data for the model.
In Conclusion
While Binding in ASP.NET MVC Application keep
these points in mind and take the benefits and that will enhance your Binding.