Asp.net mvc3中动态视图中的下拉控件

时间:2014-04-21 22:59:35

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

我有一个模特

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的情况下处理这个问题。

提前感谢您的帮助。

1 个答案:

答案 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。