基于Asp.Net MVC3中数据库返回的字段构建动态视图

本文关键字:字段 构建 动态 视图 返回 数据库 Asp Net MVC3 基于 | 更新日期: 2023-09-27 17:59:11

我想在运行时根据从数据库返回的字段呈现视图。对于设计原型/方法,应感谢任何帮助

我有下面的模型,

public class DynamicFields
{
    public string propertyName { get; set; }
    public string propertyType { get; set; }
} 

在控制器中,它将是List<DynamicFields>

因此,基于propertyType,我必须呈现控件,如TextBox/DateTime

基于Asp.Net MVC3中数据库返回的字段构建动态视图

您可以为propertyType 的每个值创建EditorTemplates

_textInput.cshtml(假设textInput是propertyType的可能值)

@model DynamicFields
@Html.TextBoxFor(item => Model.propertyName)

_dateTimeInput.cshtml(假设dateTimeInput是propertyType的可能值)

@model DynamicFields
@Html.TextBoxFor(item => Model.propertyName, new {class = "datetime"})

视图:

@model IEnumerable<DynamicFields>
@foreach(var field in Model){
    @Html.LabelFor(model => field.propertyName)
    @Html.EditorFor(model => field.propertyName, field.propertyType) @*tell razor which template to use *@
}

更多信息可以在这里找到:http://msdn.microsoft.com/en-us/library/ee407414(v=vs.118).aspx

更新了我的答案,考虑到foreach循环,并从这个答案中获得了知识:https://stackoverflow.com/a/1987585/690178