C# 如何创建包含多个复杂对象类型列表的模型<&燃气轮机;
我将如何创建一个模型来存储多个复杂的对象类型、强类型以及将来更复杂的对象类型的可伸缩性C# 如何创建包含多个复杂对象类型列表的模型<&燃气轮机;,c#,C#,我将如何创建一个模型来存储多个复杂的对象类型、强类型以及将来更复杂的对象类型的可伸缩性 ?表示类应该在什么位置,但不确定该做什么 这其中最大的警告是列表应该可以混合,所以我认为仅仅包装每种复杂类型的列表是行不通的 即产出 苹果(水果) 胡萝卜(蔬菜) 葡萄(水果) 洋葱(蔬菜) 芒果(水果) 示例代码 // Models public class Fruit { string Name {get;set} bool IsSweet {get;set} } public cl
?
表示类应该在什么位置,但不确定该做什么
这其中最大的警告是列表应该可以混合,所以我认为仅仅包装每种复杂类型的列表是行不通的
即产出
- 苹果(水果)
- 胡萝卜(蔬菜)
- 葡萄(水果)
- 洋葱(蔬菜)
- 芒果(水果)
// 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 ???
}
//模型
公共级水果
{
字符串名称{get;set}
布尔IsSweet{get;set}
}
公营蔬菜
{
字符串名称{get;set}
bool IsGross{get;set}
}
//控制器动作
公共操作结果视图食品(int userId)
{
?食品=获取食品(用户ID);
返回视图(食品);
}
//看法
@模型列表
@foreach(模型中的var项目)
{
如果(项目为水果)
{
- @名称-@IsSweet
}
否则,如果(项目为蔬菜)
{
- @名称-@IsGross
}
}
//业务层
公众???GetFood(int用户ID)
{
var fruits=repo.Get(f=>f.UserId==UserId.ToList();
var vegatbles=repo.Get(v=>v.UserId==UserId.ToList();
返回???
}
您可以为水果
和蔬菜
-食品
创建公共基类:
class Food {
public String Name { get; set; }
}
class Fruit : Food {
public bool IsSweet { get; set; }
}
class Vegetable : Food {
public bool IsGross { get; set; }
}
用食物替换所有?
或者,使用dynamic
可以为水果
和蔬菜
-食品
创建公共基类:
class Food {
public String Name { get; set; }
}
class Fruit : Food {
public bool IsSweet { get; set; }
}
class Vegetable : Food {
public bool IsGross { get; set; }
}
用食物替换所有?
或者,使用dynamic