2012-02-06 86 views
0

這裏設置「中選擇」值是控制器代碼:使用DropdownListFor忽略我的模型

EfCategoriaRepository efCategoriaRepository = new EfCategoriaRepository(); 
model.Categoria= new List<SelectListItem>(); 

foreach (var categoria in efCategoriaRepository.FindAllCategorias()) 
{ 
    model.Categoria.Add(new SelectListItem { 
     Text = categoria.Nombre, 
     Value = categoria.CategoriaId.ToString(), 
     Selected = producto.CategoriaId == categoria.CategoriaId 
    }); 
} 

使用調試器,我可以確認正確的值被設定爲「選定=真」。

我的模型:

public class ProductoModel 
{ 
    public int ProductoId { get; set; } 

    public int CategoriaId { get; set; } 
    public List<SelectListItem> Categoria { get; set; } 

    [Required] 
    public string Nombre { get; set; } 

    [Required] 
    public string Titulo { get; set; } 

    [Required] 
    [AllowHtml] 
    public string Descripcion { get; set; } 

    [Required] 
    [AllowHtml] 
    public string Caracteristicas { get; set; } 

    [Required] 
    [DisplayName("Precio - Categoria 1")] 
    public decimal PrecioCatUno { get; set; } 

    [Required] 
    [DisplayName("Precio - Categoria 2")] 
    public decimal PrecioCatDos { get; set; } 

    [Required] 
    [DisplayName("Precio - Categoria 3")] 
    public decimal PrecioCatTres { get; set; } 
} 

在我的編輯模板:

<div class="input-field"> 
    @Html.LabelFor(m => m.Categoria) 
    @Html.DropDownListFor(model => model.CategoriaId, Model.Categoria) 
</div> 

有人知道爲什麼未被儘管我有「選擇」設置爲true,選擇正確的下拉列表值在正確的價值?

+0

請問你的模型看起來像 – Rafay 2012-02-06 16:37:19

+0

@ 3nigma:編輯在 – 2012-02-06 16:39:36

+0

什麼頁面看起來像生產HTML? – 2012-02-06 16:46:16

回答

0

嘗試

EfCategoriaRepository efCategoriaRepository = new EfCategoriaRepository(); 
model.Categoria= efCategoriaRepository.FindAllCategorias().Select(x=>new SelectListItem{ 
       Value=x.CategoriaId.ToString(), 
       Text = x.categoria.Nombre 
      }).ToList(); 


    model.CategoriaId= producto.CategoriaId;