none
Asp.net MVC 4, Carrego um Dropdownlistfor de uma tabela do Bd Sql Express, é carregado o Texto, mas é salvo o Id, como faço para salvar o TEXTO no BD, Obrigado RRS feed

  • Pergunta

  •    

    O Controlador:

    var marca = db.Marca.ToList();
                marca.Add(new Marca { IdMarca = 0, Marca= " " });
                List<SelectListItem> Lista = new List<SelectListItem>();

                foreach (Marcaitem in marca)
                {
                    Lista.Add(new SelectListItem
                    {
                        Text = item.Marca.ToString(),
                        Value = item.IdMarca.ToString()
                    });
                }
                   Lista = Lista.OrderBy(c => c.Text).ToList();
                   ViewBag.Marcas = Lista;
                    return View();

    A View:

     @Html.DropDownListFor(model => model.Marca, (IEnumerable<SelectListItem>)ViewBag.Marcas, new { @class =....

    Na View carrega o Texto: "Palmolive" , mas salva o Id no Bd. 

    o Jquery:

    para carregar o segundo dropdownlist em cascata.

    <script type="text/javascript">
                            $(document).ready(function () {
                                $("#Marca").change(function () {
                                    $.get("/Classe/Action", { Marca: $("#Marca").val() }, function (data) {
                                        $("#Modelo").empty();
                                        $.each(data, function (index, row) {
                                            $("#Modelo").append("<option value='" + row.Modelo + "'>" + row.Modelo + "</option>")
                                        });
                                         
                                    });
                                })
                            });
           </script>

    Obrigado quem puder me ajudar nisso.

    sábado, 25 de abril de 2020 14:47

Respostas

Todas as Respostas

  • Se você quer gravar o texto no BD, coloque o mesmo valor no Text e no Value.

    Text = item.Marca.ToString(),
    Value = item.Marca.ToString()

    quarta-feira, 29 de abril de 2020 20:04
  • Obrigado pela atenção Eliezer, creio que não fui claro, existe um outro dropdown em cascata que precisa do Id no value para popular. E o que fazer?
    terça-feira, 19 de maio de 2020 19:43
  • Uma solução seria ao gravar no BD voce buscar o Texto a partir do Id (fazendo um select mesmo).

    Outra solução seria no onChange (javascript) do select, você jogar o texto dele num hidden.

    var selectedText = $(SEUELEMENTO).find("option:selected").text();

    quarta-feira, 20 de maio de 2020 10:02
  • Pegar o nome no front (View)
    domingo, 31 de maio de 2020 13:46
  • Obrigado Eliezer, funcionou a sua dica, agradeço a sua atenção!
    • Marcado como Resposta Juraci Marques terça-feira, 2 de junho de 2020 18:53
    • Não Marcado como Resposta Juraci Marques terça-feira, 2 de junho de 2020 18:53
    • Marcado como Resposta Juraci Marques terça-feira, 2 de junho de 2020 18:53
    terça-feira, 2 de junho de 2020 18:18