2016-05-15 84 views
0

我在我的web應用程序上收到了一個HttpException,我無法修復。我使用的是.NET WebForms,Entity Framework和Identity Framework。在這裏,當我運行的頁面出現錯誤的堆棧跟蹤:[HttpException(0x80004005):無法加載類型'Scheduler.Models.PatientModel.Patient'。]

[HttpException (0x80004005): Could not load type 'Scheduler.Models.PatientModel.Patient'.] 
    System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +9898205 
    System.Web.UI.WebControls.ModelDataSourceView.get_ModelType() +62 
    System.Web.UI.WebControls.ModelDataSourceView.EvaluateSelectMethodParameters(DataSourceSelectArguments arguments, ModelDataSourceMethod method, Boolean isAsyncSelect, DataSourceSelectResultProcessingOptions& selectResultProcessingOptions) +115 
    System.Web.UI.WebControls.ModelDataSourceView.EvaluateSelectMethodParameters(DataSourceSelectArguments arguments, DataSourceSelectResultProcessingOptions& selectResultProcessingOptions) +17 
    System.Web.UI.WebControls.ModelDataSourceView.GetSelectMethodResult(DataSourceSelectArguments arguments) +62 
    System.Web.UI.WebControls.ModelDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +15 
    System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +22 
    System.Web.UI.WebControls.ModelDataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +80 
    System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143 
    System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74 
    System.Web.UI.WebControls.GridView.DataBind() +9 
    System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +114 
    System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75 
    System.Web.UI.Control.EnsureChildControls() +92 
    System.Web.UI.Control.PreRenderRecursiveInternal() +42 
    System.Web.UI.Control.PreRenderRecursiveInternal() +160 
    System.Web.UI.Control.PreRenderRecursiveInternal() +160 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4775 

它發生時,我嘗試加載具有此標記在aspx文件的Patients.aspx頁:

<form id="form1" runat="server"> 
<div> 
    <asp:GridView ID="patientsGridView" runat="server" ItemType="Scheduler.Models.PatientModel.Patient" DataKeyNames="PatientID" 
    SelectMethod="patientsGridView_GetData" AutoGenerateColumns="false"> 
    <Columns> 
     <asp:DynamicField DataField="LastName" /> 
     <asp:DynamicField DataField="FirstName" /> 
     <asp:DynamicField DataField="NickName" /> 
     <asp:DynamicField DataField="PhoneNumber" />  
    </Columns> 
    </asp:GridView> 
</div> 
</form> 

該aspx頁面的代碼如下:

public partial class Patients : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    public IQueryable<PatientModel.Patient> patientsGridView_GetData() 
    { 
     ApplicationDbContext db = new ApplicationDbContext(); 
     var query = db.Patients.Where(p => p.Doctor.Id == User.Identity.GetUserId()); 
     return query; 
    } 
} 

有關如何解決該異常的任何想法?

回答

0

我錯誤地將我的患者模型放入另一個班級,導致了失敗。

0

我想澄清一下這個例外,如果別人發現它。

後面的代碼中缺少的是示例,其中顯示了患者對象的完整名稱空間。

舉例來說。你有完整的命名空間患者對象可能已經

Scheduler.PatientModel.Patient 

的問題是,在網格上你的的ItemType設置爲Scheduler.Models.PatientModel.Patient類型的對象,而不是Scheduler.PatientModel.Patient

指向正確的對象將修復它。在這個例子中,你必須標記改爲

ItemType="Scheduler.PatientModel.Patient" 

希望這有助於

相關問題