【问题标题】:Adding dynamic controls to MVC and getting their values in Controller向 MVC 添加动态控件并在 Controller 中获取它们的值
【发布时间】:2014-07-23 06:49:48
【问题描述】:

抱歉,时间过长,但您可以看到实际问题。

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

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

在创建属性的同时,客户端也会填写一些关于该属性的信息,即

  1. 属性名称
  2. 显示名称
  3. 服务器控制如TextBox,Dropdown
  4. 验证

实际问题:

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

谢谢。

【问题讨论】:

  • 您是否像在传统的 asp.net 中一样添加服务器控件??
  • @KartikeyaKhosla 先生。
  • 你可以为它写一个customhtmlhelper
  • @ArijitMukherjee customerhtmlhelper 是否适用于许多控件?有参考吗?
  • 是的,它适用于多个控件

标签: c# asp.net asp.net-mvc dynamic-controls


【解决方案1】:

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

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

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

选择也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多