>[MissingMethodException: No parameterless constructor defined for this object.] > System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0 > System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +113 > System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232 > System.Activator.CreateInstance(Type type, Boolean nonPublic) +83 > System.Activator.CreateInstance(Type type) +6 > System.Web.Mvc.DefaultModelBinder.CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType) +183 > System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +564 > System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +416 > System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +317 > System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +117 > System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__1e(AsyncCallback asyncCallback, Object asyncState) +446 >>I made some searches and I think it may be related to my model?
>using System; >using System.Collections.Generic; >using System.Linq; >using System.Web; >using System.Web.Mvc; >using CardNumbers.Objects; >using System.ComponentModel.DataAnnotations; >using System.ComponentModel; > >using DataAnnotationsExtensions; >using System.ComponentModel.DataAnnotations.Schema; > >namespace CardNumbers.Models >{ > public class ClientViewModel > { > public Client Client { get; set; } > > [Key] > [Editable(false)] > [Column("ClientId", TypeName = "int")] > public virtual int? ClientId > { > get > { > if (Client == null) > return null; > else > return Client.Id; > } > > set { Client.Id = value ?? 0; } > } > [Required] > [DisplayName("Client No")] > [UIHint("Number")] > [Column("client_no", TypeName = "smallint")] > [Remote("doesClientNoExist", "Client", HttpMethod = "POST", > AdditionalFields = "ClientId", > ErrorMessage = "Client Number already exists. Please enter a different Client Number.")] > public virtual Int16 ClientNumber > { > get > { > if (Client == null) > return 0; > else > return Client.Number; > } > > set { Client.Number = value; } > } > > [Required] > [Column("client_name", TypeName = "varchar")] > [DisplayName("Client Name")] > [MaxLength(30, ErrorMessage = "Client Name should not be longer than 30 characters")] > [MinLength(3, ErrorMessage = "Client Name is too short")] > [Remote("doesClientNameExist", "Client", HttpMethod = "POST", AdditionalFields = "ClientId", > ErrorMessage = "Client Name already exists. Please enter a different Client Name.")] > public virtual string ClientName > { > get > { > if (Client == null) > return ""; > else > return Client.Name; > } > > set { Client.Name = value; } > } > > public int id { get; set; } > /// <summary> > /// Public constructor > /// </summary> > /// <param name="client"></param> > public ClientViewModel(Client client = null) > { > if (client != null) > this.Client = client; > else > this.Client = new Client(); > } > } >}>
>var $dlg = $("#add-edit-dialog").dialog({ > autoOpen: false, > show: "blind", > closeOnEscape: true, > resizable: true, > width: 1200, > height: 750, > minHeight: 600, > minWidth: 950, > buttons: { > Save: function () { > > if ($("#add-edit-form").valid()) { > > var urlLoc = '/Client/Edit/' + currentId; > if ($('#fntype').val() === "Add") > urlLoc = '/Client/Add'; > > var form = $('form', this); > debugger; > var oForm = form.serialize(); > oForm = oForm.concat($('#frmClientsSearch').serialize()); > > $.ajax({ > type: 'POST', > url: urlLoc, > data: oForm, > dataType: 'json', > > cache: false, > //contentType: 'application/json', > success: function (result) { > debugger; > $('#flexClients').flexAddData(result); > } > }); > $(this).dialog('close'); > } else return false; > > }, > Cancel: function () { > $(this).dialog("close"); > clearForm(); > if (validator) > validator.resetForm(); > } > }, > close: function () { clearForm(); }, > open: function () { > } >});>