首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >asp.net mvc 3与动态视图生成

asp.net mvc 3与动态视图生成
EN

Stack Overflow用户
提问于 2011-06-24 16:51:21
回答 2查看 2.2K关注 0票数 2

我正在实现一个自定义用户配置文件屏幕。

这几乎是一个典型的用户配置文件屏幕,您可以在任何有某种成员资格元素的网站上找到它。

在我的例子中,由于屏幕是市场调研SAS产品的一部分,因此显示在配置文件上的数据点将因市场调研产品而异。该产品的主持人将通过提供以下信息来指定需要捕获哪些数据点:

字段名、显示名称、字段类型(文本、数字、无线电按钮、复选框等),必需的…

我想弄清楚如何动态地生成MVC视图以反映所请求的数据点列表。我希望尽可能多地使用MVC框架,而不必编写自己的助手来生成html。如果可能的话,我也想使用不引人注目的验证。

在这一点上,我对什么是最好的方法感到困惑。

我是否尝试使用:

  • 是一种自定义模型绑定器
  • 代码生成,用于在运行时生成模型类并将其绑定到视图
  • ,只需生成html

还有其他可能更有意义的方法(jQuery模板)、编辑器模板、一系列部分视图吗?

EN

回答 2

Stack Overflow用户

发布于 2011-06-24 17:15:09

如果您不确定要为任何给定的操作向服务器提交什么,则可以让该操作在FormCollection类型的参数中进行,然后迭代这些字段。此时,您可能希望逐个处理每种类型的字段,使用该字段的名称作为键。

为了将项发送到视图,只需包装类中每个字段的数据,如下所示:

代码语言:javascript
运行
复制
public class DataPoint
{
    public string FieldName { get; set; }
    public string DisplayName { get; set; }
    public object Value { get; set; }
}

然后让您的视图迭代您的DataPointEditorFor()方法将处理Value的类型检查,以生成正确的输入类型。这里唯一棘手的部分是将FieldName作为输入的名称。

将类作为运行时构建将是一项工作量过大的工作,而这些工作最初并不是非常复杂的。除非您知道要绑定到的模型(这是问题的根源),否则自定义ModelBinder不会帮助您。

票数 0
EN

Stack Overflow用户

发布于 2011-06-25 20:03:47

您能继续使用所有由命名div括起来的字段来布局视图吗?然后在render Action中,让Controller添加一个“隐藏”类,定义为

代码语言:javascript
运行
复制
   .hidden
   {
      display:none;
   }

对于每个包含您不需要的字段的div?

另一个选择是编写动态构建视图的HTML扩展方法。您可以为每个控件类型创建部分视图,并一个接一个地将其插入到呈现的HtmlString中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6471101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档