使用ASP.NET MVC 3框架动态地将用户控件添加到页面

时间:2012-01-04 15:49:09

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-ajax

做了什么:

在单个调查页面上,动态添加用户控件。它是使用ASP.NET 4.0实现的, 按下“下一步”,“上一步”按钮用户获得另外5-10个控件(动态构建并添加到调查页面 - 普通的ASP.NET GET / POST),在前一组控件页面上输入/选择的数据是保存到DataBase

在运行时确定的内容:

  • 用户控件的数量
  • 用户控件的类型(用户控件内的单选按钮列表,复选框,文本框等)
  • 用户控件内的asp.net控件数量(radiobutton列表中的单选按钮数量(进而位于用户控件中),用户控件内的复选框数量等))

有没有办法使用MVC 3实现该功能? (没有大麻烦)

为什么考虑这个实现, 这是因为:

  • 它允许在调查页面
  • 上进行AJAX替换控件
  • 在最近的应用中,需要为移动设备提供相同的功能,这里MVC 4带来了移动设备的新功能。

(欢迎提出所有建议)

1 个答案:

答案 0 :(得分:1)

我将假设您正在使用标准视图引擎,但您可以轻松地执行所需操作。

只需使用RenderPartial并提供您的控件/视图名称和视图模型。

<% RenderPartial("MyControl",theViewModel) %>

你可以做类似这样的事情。它假设您有一组数据,其中包含一个属性,该属性是控件/局部视图的名称,以及一个包含数据模型的属性。

<% for ( int i=0;i<data.Count;i++) { 
     RenderPartial(data[i].ControlTypeName, data[i].Model);
 }%>