ASP.NET MVC: No Parameterless Constructor Defined For This Object


Answer :

I just had a similar problem. The same exception occurs when a Model has no parameterless constructor.

The call stack was figuring a method responsible for creating a new instance of a model.

System.Web.Mvc.DefaultModelBinder.CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType)


Here is a sample:

public class MyController : Controller {     public ActionResult Action(MyModel model)     {      } }  public class MyModel {     public MyModel(IHelper helper) // MVC cannot call that     {         // ...     }      public MyModel() // MVC can call that     {     } } 

This can also be caused if your Model is using a SelectList, as this has no parameterless constructor:

public class MyViewModel {     public SelectList Contacts { get;set; } } 

You'll need to refactor your model to do it a different way if this is the cause. So using an IEnumerable<Contact> and writing an extension method that creates the drop down list with the different property definitions:

public class MyViewModel {     public Contact SelectedContact { get;set; }     public IEnumerable<Contact> Contacts { get;set; } }  public static MvcHtmlString DropDownListForContacts(this HtmlHelper helper, IEnumerable<Contact> contacts, string name, Contact selectedContact) {     // Create a List<SelectListItem>, populate it, return DropDownList(..) } 

Or you can use the @Mark and @krilovich approach, just need replace SelectList to IEnumerable, it's works with MultiSelectList too.

 public class MyViewModel     {         public Contact SelectedContact { get;set; }         public IEnumerable<SelectListItem> Contacts { get;set; }     } 

You need the action that corresponds to the controller to not have a parameter.

Looks like for the controller / action combination you have:

public ActionResult Action(int parameter) {  } 

but you need

public ActionResult Action() {  } 

Also, check out Phil Haack's Route Debugger to troubleshoot routes.


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?