The callstack shows the following:
[MissingMethodException: No parameterless constructor defined for this object.] System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) +0 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) +86 System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) +230 System.Activator.CreateInstance(Type type, Boolean nonPublic) +67 System.Activator.CreateInstance(Type type) +6 System.Web.Mvc.DefaultModelBinder.CreateModel(ModelBindingContext bindingContext, Type modelType) +277 System.Web.Mvc.<>c__DisplayClass1.<BindModel>b__0() +98 System.Web.Mvc.ModelBindingContext.get_Model() +51 System.Web.Mvc.DefaultModelBinder.BindModelCore(ModelBindingContext bindingContext) +2600 System.Web.Mvc.DefaultModelBinder.BindModel(ModelBindingContext bindingContext) +1067 System.Web.Mvc.DefaultModelBinder.BindProperty(ModelBindingContext parentContext, Type propertyType, Func`1 propertyValueProvider, String propertyName) +208 System.Web.Mvc.DefaultModelBinder.BindModelCore(ModelBindingContext bindingContext) +1787 System.Web.Mvc.DefaultModelBinder.BindModel(ModelBindingContext bindingContext) +1067 System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ParameterInfo parameterInfo) +355 System.Web.Mvc.ControllerActionInvoker.GetParameterValues(MethodInfo methodInfo) +439 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +288 System.Web.Mvc.Controller.ExecuteCore() +180 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +96 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +36 System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +377 System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +71 System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +36 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
I have a tiny form with a bunch of hidden fields and one submit button. When I press it, I never even hit the requested method.
How do I go on and debug this? It would be a great start if I knew WHAT object didn’t have a parameterless constructor. Where is this object? How can I solve this? I know the question is rather vague, but currently it’s all I’ve got..
–EDIT–
In my form I added Html.Hidden() inputs. Depending on previous actions, these can have a value of ”. The action makes use of ModelBinding. Whenever the value is ” and the datatype is a SelectList, the modelbinder goes berzerk on me.
I feel more and more uncomfortable with how the SelectList is doing it’s thing… The idea is good, but there are some issues with it.
I solved the issue which is caused of SelectList object because it does not provide the default constructor so we cant have in out ViewModel.