Использование DropdownList для игнорирования "выбранного" значения, которое я установил в модели
Вот код контроллера:
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
});
}
Используя отладчик, я могу подтвердить, что для правильного значения установлено "Selected = True".
Моя модель:
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 для правильного значения?
1 ответ
Решение
Пытаться
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;