2012-03-20 21 views
12

Ho un pulsante sul mio punto di vista MVC al clic di esso, si dovrebbe aggiungere una vista parziale in un 'div', chiamando un'azione che prende un oggetto come un parametrocarico vista parziale in un div MVC

ho provato qualche cosa come questo:

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

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

}); 

ma carica l'ActionResult/vista parziale a pagina carico stesso non un semplice clic del tasto

qualche idea?

+2

È necessario "Url.Action" per ottenere l'Url. 'Html.Action' eseguirà l'azione e restituirà il risultato della vista. – dotjoe

+0

Lo stesso non è possibile passare un oggetto utilizzando URl.Action – BreakHead

+0

Quanto è complesso questo oggetto? Puoi passare solo l'id? Altrimenti, effettua una chiamata ajax a HttpPost l'oggetto come json, quindi nel gestore di risposta carichi l'html nel div. – dotjoe

risposta

3

carico richiede una stringa, si sta generando un percorso variabile se si guarda il codice sorgente che genera qualcosa come:

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

ma quello che vuoi è:

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

il codice dovrebbe assomigliare:

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

ma come posso vedere il carico shoul d essere al lavoro fino a quando si fa clic su #buttonId

+0

Come si può passare un oggetto in un URL? - – BreakHead

+0

Come si può passare un oggetto in un URL? – BreakHead

+0

si desidera aggiungere una stringa ad esso, non un oggetto/variabile che è un percorso-url, guarda l'ultimo esempio – voigtan

16

tenta di utilizzare

@Url.Action 

invece di

@Html.Action 

Oppure è possibile utilizzare AJAX, per esempio:

$('#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

Carica vista parziale in un div MV C 4

Recentemente voglio caricare Partal View in Div, dopo aver fatto un sacco di R & D ed E 'un lavoro per me

$.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); 
} 
Problemi correlati