我正在开发 MVC 应用程序并使用剃刀语法。我使用了模型优先方法。
我有两个实体,客户和潜在客户。Lead 继承自 Customer。
当 IsActive 属性为 true 时,将 Customer 视为潜在客户,否则将是客户。
请检查 edmx 文件图像。
当我从 model 生成 DB 时,我得到了两个表 Customer Table 和 Customer_Lead 表。
这是客户表。
这是 Customer_Lead 表。
现在的问题是当我运行主要实体的索引视图时,它会给出错误。
传入字典的模型项的类型为 PagedList.PagedList1[CRMEntities.Customer],但此字典需要 PagedList.IPagedList1[CRMEntities.Lead] 类型的模型项。
我对如何为从其他实体继承的实体编写视图以及如何在使用继承的实体时访问这两个表中的数据感到困惑。
索引视图代码如下...
@model PagedList.IPagedList<CRMEntities.Lead>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
Status
</th>
<th>
IsQualified
</th>
<th>
Name
</th>
<th>
Address
</th>
<th>
OfficePhone1
</th>
<th>
Website
</th>
<th>
Email2
</th>
<th>
Email1
</th>
<th>
FaxNo
</th>
<th>
Remark
</th>
<th>
Rating
</th>
<th>
BusinessType
</th>
<th>
IsActive
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Status)
</td>
<td>
@Html.DisplayFor(modelItem => item.IsQualified)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
<td>
@Html.DisplayFor(modelItem => item.OfficePhone1)
</td>
<td>
@Html.DisplayFor(modelItem => item.Website)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email2)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email1)
</td>
<td>
@Html.DisplayFor(modelItem => item.FaxNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Remark)
</td>
<td>
@Html.DisplayFor(modelItem => item.Rating)
</td>
<td>
@Html.DisplayFor(modelItem => item.BusinessType)
</td>
<td>
@Html.DisplayFor(modelItem => item.IsActive)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
</table>
我在索引中有以下代码...
public ViewResult Index()
{
var LeadList = (from c in db.Customers
where (c.IsActive == true)
orderby (c.Id)
select c);
//What should I return ?
}