我的应用程序有两种类型的联系人,员工和客户。
所以我们有:
IContact接口
联系方式:IContact
客户:联系
员工:联系
我创建了一个视图,我尝试根据模型的类型显示正确的模板。这无声地失败,没有显示任何内容。
@model IContact
@{
var customer = Model as Customer;
var employee = Model as Employee;
}
@if (customer != null)
{
@Html.DisplayFor(model => customer, "CustomerInfo")
}
else if (employee != null)
{
@Html.DisplayFor(model => employee, "EmployeeInfo")
}
我确信这应该很容易,但我不知道这样做的正确方法。
答案 0 :(得分:1)
DisplayFor
帮助器正在搜索与customer
或employee
匹配的属性,但它永远找不到它。您应该将视图渲染为部分视图。这允许您选择要渲染的视图,并传递强类型模型:
@if (customer != null)
{
@Html.Partial(CustomerInfo", customer)
}
else if (employee != null)
{
@Html.Partial("EmployeeInfo", employee)
}