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

Chemistry - Bond Angles In NH3 And NCl3

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Change The Font Size Of Visual Studio Solution Explorer