2012-03-20 16 views
12

mam przycisku na moim zdaniem MVC na kliknięcie niej, należy dodać częściowy widok w „div”, wywołując działanie, które przyjmuje obiekt jako parametrobciążenia częściowy widok w div MVC

starałem się pewne rzeczy tak:

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

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

}); 

ale ładuje ActionResult/częściowy widok na stronie obciążenia sama nie kliknięcie przycisku

jakiś pomysł?

+2

Potrzebujesz 'Url.Action', aby uzyskać adres URL. 'Html.Action' wykona akcję i zwróci wynik widoku. – dotjoe

+0

Nie można przekazać obiektu za pomocą URl.Action – BreakHead

+0

Jak skomplikowany jest ten obiekt? Czy możesz podać tylko identyfikator? W przeciwnym razie wywołaj ajax wywołując obiekt HttpPost jako json, a następnie w module obsługi odpowiedzi załadujesz kod HTML do div. – dotjoe

Odpowiedz

3

obciążenie wymaga ciąg, jesteś generowania zmiennej PATH jeśli spojrzeć na kodzie źródłowym generować coś takiego:

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

ale to, co chcesz:

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

kod powinien wyglądać następująco:

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

ale jak widzę ładunek shoul d pracować dopiero po kliknięciu na #buttonId

+0

Jak można przekazać obiekt w adresie URL? - – BreakHead

+0

Jak można przekazać obiekt w adresie URL? – BreakHead

+0

chcesz dodać do niego ciąg znaków, a nie obiekt/zmienną, która jest ścieżką URL, spójrz na ostatni przykład – voigtan

16

spróbować użyć

@Url.Action 

zamiast

@Html.Action 

Albo można użyć ajax, na przykład:

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

Załaduj częściowy widok w div MV C4

Ostatnio Chcę załadować Partal View w Div, po zrobieniu mnóstwo R & D i jest to praca dla mnie

$.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); 
} 
Powiązane problemy