Я работаю с ASP.NET MVC 5 и Entity Framework 6, и у меня возникла проблема с выбранным значением модели (только для десятичных значений) в моих представлениях.
Это происходит только тогда, когда я получаю данные из базы данных, если я пытаюсь отправить форму, значение возвращается и выбирается правильно.
Это моя ViewModel
public class Regulacion
{
public IEnumerable<SelectListItem> ListaPorcentajePuntos
{
get
{
return new List<SelectListItem>
{
new SelectListItem { Text="0,625%" , Value = "0,625"},
new SelectListItem { Text="1%" , Value = "1"},
new SelectListItem { Text="1,25%", Value="1,25" },
new SelectListItem { Text="2,5%" , Value = "2,5"},
new SelectListItem { Text="5%" , Value = "5"},
};
}
}
public decimal? PorcentajePunto { get; set; }
//other stuff
public Regulacion(Reg reg)
{
PorcentajePunto = reg.PorcentajePunto;
}
}
И я использую его в таком виде
@Html.DropDownListFor(x => x.PorcentajePunto, Model.ListaPorcentajePuntos, "Please select", new { @class = "form-control"})
Я почти уверен, что проблема возникает, когда я получаю данные из EF и десятичной точности, потому что, когда я отлаживаю, свойство PorcentajePunto
сохраняет 5.00
вместо 5
, если я изменяю вручную свойство 5
отлично работает.
Я прочитал этот вопрос и пытаюсь использовать SelectList
вместо SelectListItem
, но это не было решением
Как с этим справиться?
Спасибо!
РЕДАКТИРОВАТЬ
Я получаю Regulacion
данные, подобные этим
using(var db = new DBTrafosContext())
{
var a = db.Reg.FirstOrDefault();
if(a != null){
Regulacion newRegulacion = new Regulacion(a);
}
}