2017-08-24 36 views
0

mvc 4アプリケーションを作成していますが、奇妙な問題が発生しています。私はある時間間隔の後に何度もエラーが続くのです。System.MissingMethodException:mvc4でこのオブジェクト用に定義されたパラメータのないコンストラクタなし

2017-08-23 17:18:19,985 [7] ERROR - System.MissingMethodException:このオブジェクトに対して定義されたパラメータのないコンストラクタ。 System.RuntimeType.CreateInstanceSlow(ブールpublicOnly、ブールskipCheckThis、ブールfillCache、StackCrawlMark & stackMark)でSystem.RuntimeTypeHandle.CreateInstance(RuntimeType型、ブールpublicOnly、ブールNOCHECK、ブール& canBeCached、RuntimeMethodHandleInternal & CTOR、ブール& bNeedSecurityCheck) でSystem.Web.MvcでSystem.Activator.CreateInstance System.Activator.CreateInstanceで(タイプタイプ、ブール非公開) (タイプtype) System.Web.Mvc.DefaultModelBinder.BindComplexModel(controllerContext controllerContext、ModelBindingContext BindingContextを)で で.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext、ParameterDescriptor (SystemControlControllerControllerContext、ActionDescriptor actionDescriptor) (System.Web.Mvc.Async.AsyncControllerActionInvoker)でを返します。私は私のモデルクラスでNULL可能なタイプだけでなく、SelectListのを使用しています

<> c__DisplayClass25.b__1e(AsyncCallback asyncCallbackは、asyncStateオブジェクト)。私はすべてのモデルクラスにデフォルトのコンストラクタを持っています。

public class BiddingFirstStepModel 
{ 
    //--------------------------Default Constructor-------- 

    public BiddingFirstStepModel() { } 

    //----------------------------------------------------- 

    public string jobname { get; set; } 
    public string jobtype { get; set; } 
    public int jobtypeid { get; set; } 
    public string jobreference { get; set; } 
    public string customername { get; set; } 
    public int? quantity { get; set; } 
    public string department { get; set; } 
    public int? departmentid { get; set; } 
    public string description { get; set; } 
    public DateTime? EndDate { get; set; } 
    public string customerid { get; set; } 
    public string rfqno { get; set; } 
    public string productpartname { get; set; } 
    public string productpartcode { get; set; } 
    public string designlocation { get; set; } 
    public DateTime? sopdate { get; set; } 
    public int? lifecycle { get; set; } 
    public string productapplication { get; set; } 
    public string enduser { get; set; } 
    public bool loa { get; set; } 
    public string JobOrderType { get; set; } 
    public string SeriesJobRefrence { get; set; } 

    //--------NPI------------ 
    public string producthead { get; set; } 
    public Int64? expectedincreasequantity { get; set; } 
    public DateTime? initialsamples { get; set; } 
    public Int64? tentativequantity { get; set; } 
    public DateTime? ppap { get; set; } 
    public string manufacturinglocation { get; set; } 
    public string supplier { get; set; } 

    //------------Customer Return------------------ 

    public Int64 quantitysupplied { get; set; } 
    public string dmaicno { get; set; } 

    //--------------------------------------------- 

    public HttpPostedFileBase excelbom { get; set; } 

    public JobDTO jobdata = new JobDTO(); 
    public SelectList DepartmentList { get; set; } 
    public SelectList JobTypeList { get; set; } 
    public SelectList CustomersList { get; set; } 
    public SelectList JobReferenceList { get; set; } 
    public SelectList JobList { get; set; } 
    public bool isedit = false; 

    public bool IsRevise = false; 

    public CustomersDTO[] CustomerData { get; set; } 

    //----------------------------------------------------- 

    public UserDTO userdetail { get; set; } 

    //----------------------------------------------------- 

    public string JobId { get; set; } 

    //---------------------Notification--------------------- 

    public List<NotificationDTO> listofnotification { get; set; } 

    //------------------------------------------------------- 

    public JobDTO[] JobsArray { get; set; } 

    //------------------------------------------------------------------- 

    public List<CustomersDTO> CustomerDataList { get; set; } 

} 

私は時々、他の時間は、それは完全に正常に動作しながら、この方法は、このエラーがスローされます。このエラーを解決することはできませんよ。私のモデルクラスのサンプルは、このようなものです。

私はこれに長い間打たれているので、どんな助けも認められます。前もって感謝します。

public class UserDTO : IUserDTO 
{ 
    public Int64 Id { get; set; } 
    public string UserId { get; set; } 
    public string UserName { get; set; } 
    public string Password { get; set; } 
    public int DepartmentId { get; set; } 
    public string Email { get; set; } 
    public int UserPrivilegeId { get; set; } 
    public int LocationId { get; set; } 
    public DateTime CreatedOn { get; set; } 
    public DateTime? ExpiredOn { get; set; } 
    public byte[] Image { get; set; } 
    public DateTime? DateOfBirth { get; set; } 
    public string MobileNo { get; set; } 
    public string DepartmentName { get; set; } 
    public string UserPrivilege { get; set; } 
    public string LocationName { get; set; } 
    public string CreatedBy { get; set; } 
    public string ImageName { get; set; } 
    public string ImageExtension { get; set; } 
    public Int64? ImageSize { get; set; } 
    public string ImageSavePath { get; set; } 
    public string ImageShowPath { get; set; } 
    public string EditedBy { get; set; } 
    public DateTime? EditedOn { get; set; } 

    public string LocationShortName { get; set; } 
} 
+0

あなたのモデルは 'UserDTO'です - これにはパラメータのないコンストラクタが含まれていますか? ( 'CustomersDTO'と' NotificationDTO'と 'JobDTO'の相反) –

+0

この宣言は疑わしいようです:' public UserDTO userdetail {get;セット; } '。モデルクラスにはバインド用の空の引数コンストラクタが1つありますか? –

+0

@StephenMuecke Sir UserDTO、CustomersDTO、NotificationDTO、およびJobDTOは、私の共有層のクラスです。私はこれらのクラスのオブジェクトをコントローラ内に作成し、データをデータアクセスレイヤに渡しています。 –

答えて

0

ちょうどここに勘に行く:

UserDTOクラスは、このようなものです。スタックトレースに基づいて、モデルバインダーが好きではないという問題があります。あなたのDTOクラスには、パラメータのないコンストラクタがありますか?

このタイプの奇妙な問題をデバッグする方法は、動作するバージョンを見つけるまで、ほとんどのモデルをコメントアウトすることです。その後、徐々に新しい特性を導入する。それは迅速ではありませんが、少なくとも、絞り込んで犯人を見つけることができます。

+0

いいえ、私のDTOクラスにはパラメータのないコンストラクタはありません。 –

+0

私が言ったように、どのプロパティがエラーを生成するのかを識別できるように、モデルからコメントを出してみてください。そのエラーを生成する特定の要求がある場合は、絞り込むこともできます。 –

関連する問題