ASP.NET LinqDataSource數據綁定後,遇到[MissingMethodException: 沒有爲該對象定義無參數的構造函數。]問題。

問題出現的情形:LinqDataSource數據綁定到DetailsView或GridView均出錯,錯誤以下:web

「/」應用程序中的服務器錯誤。
沒有爲該對象定義無參數的構造函數。
說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆棧跟蹤信息,以瞭解有關該錯誤以及代碼中致使錯誤的出處的詳細信息。

異常詳細信息: System.MissingMethodException: 沒有爲該對象定義無參數的構造函數。

源錯誤:

執行當前 Web 請求期間生成了未經處理的異常。可使用下面的異常堆棧跟蹤信息肯定有關異常緣由和發生位置的信息。

堆棧跟蹤:


[MissingMethodException: 沒有爲該對象定義無參數的構造函數。]
   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) +122
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +239
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +85
   System.Activator.CreateInstance(Type type) +12
   System.Web.HttpRuntime.FastCreatePublicInstance(Type type) +80
   System.Web.UI.WebControls.LinqDataSourceView.CreateContext(Type contextType) +12
   System.Web.UI.WebControls.LinqDataSourceView.CreateContextAndTable(DataSourceOperation operation) +857
   System.Web.UI.WebControls.LinqDataSourceView.CreateContextAndTableForSelect() +151
   System.Web.UI.WebControls.LinqDataSourceView.CreateContext(DataSourceOperation operation) +15
   System.Web.UI.WebControls.ContextDataSourceView.GetSource(QueryContext context) +21
   System.Web.UI.WebControls.LinqDataSourceView.GetSource(QueryContext context) +334
   System.Web.UI.WebControls.LinqDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +64
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +22
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +151
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +76
   System.Web.UI.WebControls.DetailsView.DataBind() +10
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +114
   System.Web.UI.WebControls.DetailsView.EnsureDataBound() +239
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +76
   System.Web.UI.Control.EnsureChildControls() +97
   System.Web.UI.Control.PreRenderRecursiveInternal() +42
   System.Web.UI.Control.PreRenderRecursiveInternal() +163
   System.Web.UI.Control.PreRenderRecursiveInternal() +163
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +906

版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.8.3815.0

問題緣由:本身建立的datacontext部分類缺失了0參數的構造函數。服務器

解決辦法:不更改VS自動生成的dbml文件(mystudent)的datacontext部分類(mystudentDataContext)的代碼(在mystudent.designer.cs文件裏面),新建一個類,添加0參數構造函數,問題解決,代碼以下:app

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;

/// <summary>
/// mystudent 的摘要說明
/// </summary>
public partial class mystudentDataContext : System.Data.Linq.DataContext
{
    public mystudentDataContext()
        : base(ConfigurationManager.ConnectionStrings["LiteratureConnectionString01"].ConnectionString, mappingSource)
    {
        //
        // TODO: 在此處添加構造函數邏輯
        //
    }
}

 

 

參考資源:https://stackoverflow.com/questions/24216559/no-parameterless-constructor-defined-for-this-object-asp-net-websiteless

相關文章
相關標籤/搜索