向MVC中添加动态控件并在Controller中获取它们的值
本文关键字:获取 Controller MVC 添加 动态控件 | 更新日期: 2023-09-27 18:14:32
很抱歉把它写得太长了,但是你可以看到实际的问题。
背景: 这是一个e-commerce
项目,我允许客户在其中添加任何数量的类别和子类别。对于每个类别,客户端将自己创建一些属性。假设客户端创建了一个类别Mobile Phones
,并将该类别添加到Category
表中,然后他为该类别创建了一些属性,如Price
, Brand
等,所有这些属性都用CategoryId
(Categories
表的主键)插入到Attributes
表中。到此为止。
当客户端在特定类别中添加产品时,例如在我们的Mobile Phones
的类别中,为了保存产品,我有Products
表。产品表最初没有Price
和Brand
列,但它们将在客户端创建属性时创建,因此在开发时我不知道所有这些列。
在创建属性时,客户端还将填充有关该属性的一些信息,即
- 属性名称
- 显示名称
-
TextBox
,Dropdown
等服务器控件 < - 验证/gh>
看上面的故事,我们知道我们可以为任何类别拥有任意数量的属性,这些属性将与Server Control
相关联。在添加产品的同时在视图中添加这些控件,我们只需要动态地添加关联的控件,而不是HTML或Razor。我们能在MVC中做到吗?如果是,那怎么做?
谢谢。
您可以使用Dictionary
或数组作为控制器动作的参数。在视图中,您只需要将所有输入命名为一个数组:
<input type="text" name="data[1]" >
<input type="text" name="data[2]" >
下面是一个示例:http://www.quickstepit.net/mvc-3-model-binding-array/
选择也是一样。