您如何在mvc/razor中使用“动态属性”实现模型?我不确定“动态属性”是否是正确的术语。
场景:我有一个来自数据库的项目列表。然后,从属性列表(同样来自数据库)中为每个项目分配一组“属性”。
在我的Item模型中,我认为应该有一组属性/属性集合,对吗?类似于:
public class Item
{
public int ItemId { get; set; }
public string ItemName{ get; set; }
public virtual ICollection<Attribute> Attributes { get; set; }
}
public class Attribute
{
public int AttributeId { get; set; }
public string AttributeName { get; set; }
}
我的目标是呈现一个视图,以便如果用户从下拉列表中选择一个项目,则将与所选项目相关联的属性集显示为相应的HTML输入元素(文本框或下拉列表)。
例如,当用户从下拉列表中选择项目时的UI(假设它是“相机”):
- 相机 - 品牌 - [文本框] - 型号 - [文本框] - 保修 - [保修期限的下拉列表]
例如,当用户从下拉列表中选择一个项目(假设它是“房屋”)时的UI:
- 房屋 - 占地面积 - [文本框] - 房间数 - [文本框] - 浴室数量 - [文本框]
像上面定义的属性这样创建/编辑/删除一个简单模型不成问题。让我感到困惑的是实现上述“动态属性”的方式。
我来自WebForms,对MVC还很陌生,请温柔一点好吗? :)