向MVC中添加动态控件并在Controller中获取它们的值

本文关键字:获取 Controller MVC 添加 动态控件 | 更新日期: 2023-09-27 18:14:32

很抱歉把它写得太长了,但是你可以看到实际的问题。

背景:

这是一个e-commerce项目,我允许客户在其中添加任何数量的类别和子类别。对于每个类别,客户端将自己创建一些属性。假设客户端创建了一个类别Mobile Phones,并将该类别添加到Category表中,然后他为该类别创建了一些属性,如Price, Brand等,所有这些属性都用CategoryId (Categories表的主键)插入到Attributes表中。到此为止。

当客户端在特定类别中添加产品时,例如在我们的Mobile Phones的类别中,为了保存产品,我有Products表。产品表最初没有PriceBrand列,但它们将在客户端创建属性时创建,因此在开发时我不知道所有这些列。

在创建属性时,客户端还将填充有关该属性的一些信息,即

  1. 属性名称
  2. 显示名称
  3. TextBox, Dropdown等服务器控件
  4. <
  5. 验证/gh>
实际问题:

看上面的故事,我们知道我们可以为任何类别拥有任意数量的属性,这些属性将与Server Control相关联。在添加产品的同时在视图中添加这些控件,我们只需要动态地添加关联的控件,而不是HTML或Razor。我们能在MVC中做到吗?如果是,那怎么做?

谢谢。

向MVC中添加动态控件并在Controller中获取它们的值

您可以使用Dictionary或数组作为控制器动作的参数。在视图中,您只需要将所有输入命名为一个数组:

<input type="text" name="data[1]" >
<input type="text" name="data[2]" >

下面是一个示例:http://www.quickstepit.net/mvc-3-model-binding-array/

选择也是一样。