This is a mirror of official site: http://jasper-net.blogspot.com/

ASP.NET MVC Custom Model Binding

| Sunday, October 3, 2010
  One item I take for granted when I'm using ASP.NET MVC is the powerful feature that is model binding. Model binding is ASP.NET MVC's mechanism for mapping HTTP request data directly into action method parameters and custom .Net objects. Each time your application receives an HTTP request containing the form's data as a pair of key/value pairs, the ControllerActionInvoker invokes the DefaultModelBinder to transform that raw HTTP request into something more meaningful to you, which would be a .Net object. This just works and I love it. Sometimes you need to customize the default model binding to work a little differently. For example, if you were expecting a strongly typed collection of values posted from a multi select control, the default model binding won't work as expected. I'll demonstrate one workaround for this so your action can expect a strongly typed object, and not just an array of strings.
Open visual studio 2010 and create a new ASP.NET MVC 2 empty web application. The model for this will be simple as I want to illustrate the technique of model binding. Here's the model below:

public class Car
{
     public string Make { get; set; }
      public int Id { get; set; }

      public static List<Car> GetCars()
      {
           return new List<Car>
                          {
                              new Car { Id = 1, Make = "Ford"},
                              new Car { Id = 2, Make = "Holden"},
                              new Car { Id = 3, Make = "Chevrolet"}
                          };
      }
}


Now to fast track things. I've got an action that receives HTTP post request and its signature is below:

[HttpPost]
public ActionResult PostCars(List<Car> cars)
{
     return Content("Ok");
}


Read more: net curry .com

Posted via email from .NET Info

0 comments: