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

You need to set the "Selected" property to true on your SelectListItem. You could create a population method like:

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;
}

The source variable would be your original collection of 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 に答える