1

我在模型中定义了这个下拉列表

tipoUsuario = new List<SelectListItem>();            
tipoUsuario.Add(new SelectListItem { Text = "Sin tipo", Value = "4" });                
tipoUsuario.Add(new SelectListItem { Text = "1 - Super usuario", Value = "1"});                
tipoUsuario.Add(new SelectListItem { Text = "2 - Administrador", Value = "2" });
tipoUsuario.Add(new SelectListItem { Text = "3 - Usuario", Value = "3" });                

public List<SelectListItem> tipoUsuario { get; set; }

该视图显示了一个元素列表,每个元素都有一个下拉列表,每个元素都必须根据来自控制器的值具有不同的默认选择值。现在我正在显示“管理员”,但我想要默认值......

if (@item.type == "2")
{                      
    @Html.DropDownListFor(x => item.type, item.tipoUsuario, "Administrator")                
}

我正在尝试很多选择,但我不知道该怎么做,请帮助我

提前为您服务!

4

1 回答 1

1

您需要在 SelectListItem 上将“Selected”属性设置为 true。您可以创建一个人口方法,如:

public IEnumerable<SelectListItem> PopulateTipoUsuario(string default){
    var tipo = from t in source
                    select new SelectListItem
                    {
                        Text = t.Text,
                        Value = t.Value,
                        Selected = t.Text == default
                    };
        return tipo;
}

源变量将是您的 SelectListItems 原始集合:

var source = new List<SelectListItem>();            
tipoUsuario.Add(new SelectListItem { Text = "Sin tipo", Value = "4" });                
tipoUsuario.Add(new SelectListItem { Text = "1 - Super usuario", Value = "1"});                 
tipoUsuario.Add(new SelectListItem { Text = "2 - Administrador", Value = "2" });
tipoUsuario.Add(new SelectListItem { Text = "3 - Usuario", Value = "3" });   
于 2013-07-22T10:52:55.323 回答