none
Como guardar un dato desde el layout a una base de datos RRS feed

  • Pregunta

  • hola lo que pasa es que poseo el siguiente codigo en mi layout

                    <li class="dropdown">
                        <a class="sa-side-folder" href="">
                            <span class="menu-item">Templates</span>
                        </a>
                        <ul class="list-unstyled menu-item">
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-kiwi');">Kiwi</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-violate');">Violeta</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-lights');">Claro</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-city');">Ciudad</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-greenish');">Rocoso</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-night');">Nocturno</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-sunny');">Atardecer</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-blue');">Azul</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-chrome');">Cromo</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-ocean');">Oceano</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-sunset');">Amanecer</a></li>
                            <li><a href="#" onclick="CambiarEstilo('skin-blur-yellow');">Cafe</a></li>

                        </ul>
                    </li>

    entonces no se como podria llevar estos datos a una base de datos de antemano muchas gracias por la ayuda

    domingo, 3 de agosto de 2014 17:09

Todas las respuestas

  • >>entonces no se como podria llevar estos datos a una base de datos

    no entendi, como es eso de llevar a una base de datos ?

    alli solo veo html, no hay nada que se pueda llevar a ningun lado

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 3 de agosto de 2014 18:38
  • Hola si que pena no fui muy claro 

    lo que necesito es que al seleccionar cualquiera de esos <li> me lleve lo que contiene a un controlador y pueda guardar el dato por medio de entity framework a mi base de datos 

    no se si tenga que encapsular este codigo en un @Html.Beginform() o como seria el procedimiento

    gracias


    • Editado Alexis cano domingo, 3 de agosto de 2014 19:17
    domingo, 3 de agosto de 2014 19:16
  • [...] al seleccionar cualquiera de esos <li> me lleve lo que contiene a un controlador [...] no se si tenga que encapsular este codigo en un @Html.Beginform()

    Dado que en los <li> ya tienes un hiperenlace <a ...>, lo más sencillo es cambiar el href para que apunte a tu método de acción. Por ejemplo, si donde pone <a href="#"> lo cambias por <a href="/miweb/micontrolador/mimetododeaccion">, cada vez que hagan click en ese enlace se ejecutará el método de acción indicado.

    Por supuesto, en lugar de escribir la ruta "a piñón fijo", puedes apoyarte en los helpers @Html.ActionLink(...) o @Url.Action(...) para generar el enlace dinámicamente sin preocuparte de cuál es la raíz de la url en la que se publica tu sitio.

    domingo, 3 de agosto de 2014 20:10
  • ok acabo de hacer esto 

                    <li class="dropdown">
                        <a class="sa-side-folder" href="">
                            <span class="menu-item">Templates</span>
                        </a>
                        <ul class="list-unstyled menu-item">
                            <li><a href="@Url.Action("temas", "Home", new { estilo = "skin-blur-kiwi" })" onclick="CambiarEstilo('skin-blur-kiwi');">Kiwi</a></li>
                        </ul>
                    </li>

    he hice esto en el controlador 

      public void temas(string estilo)
            {
                string nombre = HttpContext.Application["var1"].ToString();
                if (estilo != null)
                {
                    var model = db.Database.ExecuteSqlCommand("update GPUsuarios set Template = '" + estilo + "' where Nombre = '" + nombre + "'");
                    db.SaveChanges();
                }
            }

    y como no le coloque el Return View() me deja la pagina en blanco yo solo deseo que el valla me guarde el valor que le envie y no me recargue la pagina con que helper se realizaria esto que solo valla al metodo void que realize en el controlador guarde lo que se le envio y no me recargue la pagina muchas gracias

    domingo, 3 de agosto de 2014 21:09
  • hola

    y si usas un RedirecToAction() ?

    o sea

    public ActionResult temas(string estilo) { string nombre = HttpContext.Application["var1"].ToString(); if (estilo != null) { var model = db.Database.ExecuteSqlCommand("update GPUsuarios set Template = '" + estilo + "' where Nombre = '" + nombre + "'"); db.SaveChanges(); }

    return RedirectToAction("Index"); }


    la idea es que invoque el action pero despues redirecciona al mismo en el cual ya te encontrabas

    Nota: no puse un controller en el redirectoaction() porque imagine te encontrarias en el mismo controlador Home

    ----

    sino la otra seria usar ajax, podria ser con jquery

    tambien se podria evaluar usar

    Ajax.ActionLink()

    con este no definas un <a> porque ya lo crea automatico

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 3 de agosto de 2014 21:33
  • Sería tan simple como cambiar el código de la función de JavaScript CambiarEstilo para que por AJAX, usando jQuery llame a una acción de un controlador de tu aplicación para que lo guardara en la base de datos.

    EntityLite: A Lightweight, Database First, Micro ORM

    lunes, 4 de agosto de 2014 10:07