我将如何创建一个模型来存储多个复杂的对象类型,强类型,以及将来可以扩展到更复杂的对象类型?
???
表示课程应该在哪里,但不知道该怎么做。
这里的一个重要警告是该列表应该能够混合使用,所以我认为只需将每个复杂类型的List<>>包裹起来
即。输出
示例代码
// Models
public class Fruit
{
string Name {get;set}
bool IsSweet {get;set}
}
public class Vegetable
{
string Name {get;set}
bool IsGross {get;set}
}
// Controller Action
public ActionResult ViewFood(int userId)
{
??? foods = GetFood(userId);
return View(foods);
}
// View
@model List<???>
<ul>
@foreach(var item in model)
{
if(item is Fruit)
{
<li>@Name - @IsSweet</li>
}
else if(item is Vegetable)
{
<li>@Name - @IsGross</li>
}
}
</ul>
// Buisness Layer
public ??? GetFood(int userId)
{
var fruits = repo.Get<Fruit>(f => f.UserId == userId).ToList();
var vegatbles = repo.Get<Vegetable>(v => v.UserId == userId).ToList();
return ???
}
答案 0 :(得分:4)
您可以为Fruit
和Vegetable
- Food
创建公共基类:
class Food {
public String Name { get; set; }
}
class Fruit : Food {
public bool IsSweet { get; set; }
}
class Vegetable : Food {
public bool IsGross { get; set; }
}
将所有???
替换为Food
。
或者,使用dynamic
。