2012-03-20 39 views
12

Tengo un botón en mi punto de vista MVC en tecleo de la misma, se debe añadir una vista parcial en un 'div', llamando a una acción que toma un objeto como un parámetroCargar vista parcial en un div MVC

probé algo como esto:

$('#buttonId').onclick(function(){ 

$('#divid').load(@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass})) 

}); 

pero carga la vista ActionResult/parcial en la página misma carga no un clic del botón

alguna idea?

+2

Necesita 'Url.Action' para obtener la URL. 'Html.Action' ejecutará la acción y devolverá el resultado de la vista. – dotjoe

+0

Lo mismo que no se puede pasar un objeto usando URl.Action – BreakHead

+0

¿Cuán complejo es este objeto? ¿Puedes pasar solo la identificación? De lo contrario, realice una llamada ajax a HttpPost el objeto como json, luego en el controlador de respuesta, cargue el html en el div. – dotjoe

Respuesta

3

carga requiere una cadena, se está generando una trayectoria variable de si nos fijamos en el código fuente que genere algo como:

$('#buttonId').click(function(){ 
    $('#divid').load(yoururl/); 
}); 

pero lo que quiere es:

$('#buttonId').click(function(){ 
    $('#divid').load("yoururl/"); 
}); 

el código debería verse como:

$('#buttonId').click(function(){ 
    $('#divid').load('@Html.Action("ActionName","ControllerName",new{parameterName = objectToPass})'); 
}); 

pero como puedo ver la carga debería d estar trabajando hasta que haga clic en #buttonId

+0

¿Cómo se puede pasar un objeto en una URL? - – BreakHead

+0

¿Cómo se puede pasar un objeto en una URL? – BreakHead

+0

desea agregar una cadena a ella, no un objeto/variable que es una ruta url, consulte el último ejemplo – voigtan

16

intenta utilizar

@Url.Action 

en lugar de

@Html.Action 

O puede usar Ajax, por ejemplo:

$('#buttonId').click(function() { 
    $.ajax({ 
     type: 'POST', 
     url: '@Url.Content("~/ControllerName/ActionName")', 
     data: objectToPass, 
     success: function (data) { 
      $('#divid').innerHTML = data; 
     } 
    }); 
} 
5
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#buttonId').click(function() { 
      $('#divid').load('@Url.Action("About", "Home")'); 
     }); 
    }); 
</script> 

<a id="buttonId">Load partial view or Any URL</a> 

<div id="divid" style="height:100px; width:400px";> 

</div> 
5

Cargar vista parcial en un div MV C 4

Recientemente quiero cargar Partal Ver en Div, después de hacer un montón de R & D y es un trabajo para mí

$.ajax({ 
type: 'POST', 
url: '@Url.Content("~/ControllerName/ActionName")', 
data: { 
    title: title 
}, 
success: function(result) { 
    $('#divid').innerHTML = result; 
} 

});

And In Partal View Action Controller Code 

public PartialViewResult ShowCategoryForm(string title) 
{ 
    Model model = new Model(); 
    model.Title = title; 
    return PartialView("~/Views/ControllerName/PartalView.cshtml", model); 
} 
Cuestiones relacionadas