我想根据从Database返回的字段在运行时呈现视图。在设计原型/方法时应该理解任何帮助
我有以下型号,
public class DynamicFields
{
public string propertyName { get; set; }
public string propertyType { get; set; }
}
在Controller中,它将是List<DynamicFields>
因此,基于propertyType,我必须像TextBox / DateTime
一样呈现控件答案 0 :(得分:1)
您可以为propertyType
_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