none
Actualizar solo contenido de plantilla MVC 4 RRS feed

Respuestas

  • hola

    pero entonces no puedes usar un Html.ActionLink

    tienes que usar el Ajax.ActionLink

    o sino definir un link <a> simple y asignarle javascript, seguramente el evento click, para que realice el $.ajax  y cargue el partial view resultante en el div

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 18 de agosto de 2013 3:59

Todas las respuestas

  • hola

    apuntas a utilizar ajax con partialview ?

    ASP.NET MVC3 : Loading Partial View with jQuery

    invoca al action usando $.ajax y en la respues usa

    $('#sectionContents').html(result);

    con ese html() carga el resultado del partial en un <div>

    ---

    otra opcion

    ASP.NET MVC y Ajax: fácil no… facilísimo :)

    usando directo el load() que apunta a un action

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    sábado, 17 de agosto de 2013 13:35
  • Como lo dice Leandro puedes usar partialview.

    Puedes ver como funciona , en este post donde explico que es un partial view y como usarlo.

    http://scampusmana.blogspot.com/2013/07/vista-parcial-partialview.html

    Usando MVC 4, Jquery y Json.

    sábado, 17 de agosto de 2013 14:28
  • Leandro podrias proporcionarme un pequeño ejemplo de la primera opcion?

    Saludos.

    sábado, 17 de agosto de 2013 15:06
  • los ejemplos estan en los links que proporcione

    pudistes analizarlos ?


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 17 de agosto de 2013 19:53
  • Si, me cree un proyecto nuevo mvc 4 y trate de aplicarle el ejemplo pero no me funciona.

    Saludos.

    sábado, 17 de agosto de 2013 20:39
  • En la vista parcial:

    @{
        this.Layout = null;
    }

    @{
        ViewBag.Title = "_Contact";
    }

    <h2>_Contact</h2>

    El controlador:

    public ActionResult _Contact(string documentType, string sectionName)
    {
        ViewBag.Message = "Your _contact page.";

        if (Request.IsAjaxRequest())
        {
            return PartialView("_Contact");
        }
        return View();
    }

    En la plantilla:

    <div id="body">
        @RenderSection("featured", required: false)
        <section class="content-wrapper main-content clear-fix">
    <div id="body100">
            @RenderBody()
    </div>
        </section>
    </div>

    La llamada jQuery para rellenar el div:

    <li>@Html.ActionLink("_Contacto", "_Contact", "Home")

        <script type="text/javascript">
        $.ajax({
            url: '/Home/_Contact/',
            contentType: 'application/html; charset=utf-8',
            type: 'GET',
            dataType: 'html',
            data: {
                documentType: $('#DocumentType').val(),
                sectionName: $('#SectionName').val()
            }
        })
        .success(function(result) {
            // Display the section contents.
            $('#body100').html(result);
        })
        .error(function(xhr, status) {
            alert(xhr.responseText);
        });
        </script>

    </li>

    Saludos, Limberg.

    sábado, 17 de agosto de 2013 21:20
  • hola

    porque usas esto

    url: '/Home/_Contact/',

    y no un @Url.Action()

    ----

    porque pones esto

    <script type="text/javascript">
        $.ajax({

    o sea el $.ajax asi suento dentro del tag script, quien invoca esa funcionalidad?

    ----

    si la idea es cargar solo un partial en la pagina entonces solo usa

    @Html.RenderPartial()

    no necesitas suar todo lo que mencione si solo era poner un partial estatico en un lugar de la pagina

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 17 de agosto de 2013 21:51
  • En la plantilla tengo un link para invocar la accion:

    @Html.ActionLink("_Contacto", "_Contact", "Home")

    El ejemplo tiene esa sintaxis: url: '/Home/_Contact/',

    Leandro:

    Lo que quiero es llamar una vista desde una opcion de menu y que esta se muestre en la seccion de contenido de la plantilla, pero que no actualize toda la pagina.

    Si tienes un pequeño ejemplo me guiaria mucho...

    Saludos, Limberg.

    sábado, 17 de agosto de 2013 22:19
  • hola

    pero entonces no puedes usar un Html.ActionLink

    tienes que usar el Ajax.ActionLink

    o sino definir un link <a> simple y asignarle javascript, seguramente el evento click, para que realice el $.ajax  y cargue el partial view resultante en el div

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 18 de agosto de 2013 3:59
  • Gracias Leandro

    Saludos, Limberg.

    miércoles, 21 de agosto de 2013 15:57