您将如何使用 mvc/razor 实现具有“动态属性”的模型?我真的不确定“动态属性”是否是正确的术语。
场景:我有一个来自数据库的项目列表。然后从属性列表(也来自数据库)中为每个项目提供一组“属性”。
在我的项目模型中,我认为我应该有一个属性/属性的集合,对吗?就像是
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 还是很陌生,所以放轻松好吗?:)