我有以下的類 -ASP.NET MVC 3視圖,超類不適用於子類?
public abstract class BusinessObject { }
public abstract class Form: BusinessObject { }
public abstract class BillableForm: Form { }
public class MembershipForm: BillableForm { }
public abstract class Dto<T>: where T: BusinessObject { }
public abstract class InboxDto<T>: Dto<T> where T: Form { }
public class MembershipFormDto: InboxDto<MembershipForm> { }
和我有以下幾點看法 -
membershipform.cshtml:
@model AdminSite.Models.MembershipFormDto
@{
Layout = "~/Views/Inbox/Shared/_LayoutForm.cshtml"
}
_LayoutForm.cshtml:
@model InboxDto<Form>
當我降落membershipform.cshtml頁面上,我得到以下異常說明:
傳遞到字典中的模型項目類型爲'AdminSite.Models.MembershipFormDto',但該字典需要一個'AdminSite.Infrastructure.Models.InboxDto`1 [BusinessLogic.Inbox.Form]'類型的模型項目。
從一切我可以告訴,MembershipFormDto
IS-A MembershipForm
類型,其中MembershipForm
IS-A Form
的InboxDto
。是什麼賦予了?
您可以發佈您的操作方法的代碼? – Chandu
異常不是來自操作方法。當我切換'_LayoutForm.cshtml'使用'@model dynamic'時,action方法工作正常,但我寧願有一個強類型模型。這可能是C#鍵入系統的一個問題,也是我的一些無知。 – MushinNoShin