我有一个模特
public class DynamicFields
{
public string propertyName { get; set; }
public string propertyType { get; set; }
}
这将在我的控制器中填充为List。
现在我需要根据propertyType文本值在View中动态呈现控件。如果值是" TextBox"我需要渲染文本框控件。所以我使用了editorfor控件。
查看,
@model IEnumerable<DynamicFields>
@foreach(var field in Model)
{
@Html.LabelFor(model => field.propertyName)
@Html.EditorFor(model => field.propertyName, field.propertyType)
}
我不知道如何在DropDownList的情况下处理这个问题。
提前感谢您的帮助。
答案 0 :(得分:1)
这假设您要在页面渲染时显示DropDownList而不是文本框。
@model IEnumerable<DynamicFields>
@foreach (var field in Model)
{
Html.LabelFor(model => field.propertyName)
if (field.propertyType == "Textbox")
{
Html.EditorFor(model => field.propertyName)
}
else
{
Html.DropDownListFor(model => model.propertyName, field.propertyType)
}
}
如果您希望在客户端进行更改,具体取决于用户在下拉列表中选择的内容,则必须使用javascript / jquery。