Devo effettuare una chiamata AJAX sull'evento onchange di un elenco a discesa che fa parte di una vista. Sull'evento change devo chiamare il database, fare alcuni calcoli visualizzare l'interfaccia utente e quindi usare i calcoli per compilare un controllo grafico. Il display dell'interfaccia utente si trova in questa sequenza. Grafico Elenco categorie a discesa elenco di sottocategorie con punteggio di valutazione Quindi, come è possibile, è necessario visualizzare le classificazioni di categorie in div3 sull'evento di modifica, utilizzare il punteggio di classificazione per compilare il grafico. Facilmente fatto in .NET ma come in MVC ?? L'unica opzione a cui riesco a pensare è creare il controllo utente con codice nascosto, ma che sconfigge lo scopo dell'utilizzo di MVC. Qualsiasi aiuto è apprezzato.Chiamata AJAX su evento OnChange in MVC
risposta
Cercare di utilizzare una vista parziale. Ci sono molti collegamenti se Google ASP.Net MVC Vista parziale ma qui è quella che ho trovato intestering
http://blog.stevensanderson.com/2008/10/14/partial-requests-in-aspnet-mvc/
non sono sicuro capisco perfettamente quello che stai cercando di fare, ma in modo MVC Probabilmente gestirò è unire insieme un paio di chiamate AJAX. Il primo aggiorna le classificazioni di categoria in base alla selezione. Questo probabilmente restituisce JSON in modo da poter estrarre facilmente i punteggi delle classifiche. Il secondo prende i punteggi delle valutazioni restituiti dal primo e chiama un'azione che esegue il rendering del grafico come HTML, cioè restituisce una vista parziale che viene restituita e inserita nella posizione corretta nel documento.
Ecco un'idea generale su come implementarlo.
<script type="text/javascript">
// assuming you're using jQuery
$("#ddlAjax").change(function (event) {
$.ajax({
url: "Controller/GetPartialGraph/" + $(this).val(),
data: { id = $(this).val() /* add other additional parameters */ },
cache: false,
type: "POST",
dataType: "html",
success: function (data, textStatus, XMLHttpRequest) {
$("#divPartialView").html(data); // HTML DOM replace
}
});
});
</script>
<select id="ddlAjax">
... list of options
</select>
<div id="divPartialView">
<!-- something like this in your ASP.NET View -->
<%= Html.RenderPartial("MyPartialView", Model) %>
</div>
Ecco il metodo di azione del controller.
[HttpPost]
public PartialViewResult GetPartialGraph(int id /* drop down value */)
{
// do calculations whatever you need to do
// instantiate Model object
var model = myBusinessLogicService.DoCalculations(id);
return PartialView("MyPartialView", model);
}
Penso che questa sia la risposta che stai cercando.
Ok, se ciò che si vuole, tra l'altro un modo per chiamare un evento onchange quando un cambiamento DropDownList questo può essere utile:
@Html.DropDownListFor(
model => model.SelectedId,
new SelectList(ViewBag.Ids, "Id", "Name"),
"[All]",
new { onchange = "onChangeId();", @id ="municipalityDropDown" }
)
allora si può avere questo codice javascript e il codice Ajax. Ed ecco un esempio di un codice jax per chiamare un metodo di azione.
function onChangeId() {
jQuery.ajax({
url: '@Url.Action("Action Method Name", "Controller Name")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ data: data2 }),
success: function (result) { }
});
}
Sembra che tu non abbia letto la domanda. Non sta chiedendo come attivare il codice onchange o inviare una richiesta Ajax. –
Sì, è vero - unico cambiamento è la sostituzione:
onchange = “this.form.submit();”
con:
onchange = “$(this.form).submit();”
trovato in this posta
- 1. evento onchange su window.location.href
- 2. MVC 4.5 Chiamata Ajax asincrona
- 3. JavaFX TextArea Evento OnChange
- 4. evento onChange con contenteditable
- 5. Evento "onchange" di trigger
- 6. chiamata javascript funzione onchange evento di elenco a discesa
- 7. PHP per Ajax utilizzando onchange
- 8. Evento di Onchange dopo il completamento automatico
- 9. Evento per SELECT onchange con tastiera
- 10. Come espandere un evento onchange con JavaScript
- 11. evento "onchange" ritardato in IE? (ok con Firefox)
- 12. ASP.net MVC AntiForgeryToken su AJAX
- 13. .net mvc e jquery $ .ajax su IE9
- 14. evento onchange per tipo di input = "numero"
- 15. Chiamata Ajax per ottenere dati GeoJson da ASP.NET MVC Controller
- 16. ASP.NET MVC Html.DropDownList popolato dalla chiamata Ajax al controller?
- 17. facendo una chiamata ajax su window.unload
- 18. JavaScript rileva un evento AJAX
- 19. chiamata JavaScript evento onchange per programatically modificando il valore di testo
- 20. jquery ajax - impostazioni globali. È possibile sapere quale evento/elemento ha attivato la chiamata ajax?
- 21. Javascript su (prima e dopo) ogni chiamata Ajax
- 22. Come effettuare una chiamata Ajax in MVC4
- 23. Effettuare una richiesta AJAX utilizzando $ .ajax in MVC 4
- 24. QUnit: come testare chiamata AJAX senza modificare la chiamata ajax
- 25. jQuery Ajax chiamata semplice
- 26. Pulsante Evento in ASP.NET MVC
- 27. Flash - Chiamata AJAX
- 28. La coda eventi ajax JSF non funziona su evento-evento dopo evento di modifica
- 29. AJAX croce dominio chiamata
- 30. Rileva chiamata ajax, ASP.net
Per me funziona, ma ho dovuto cambia solo: "data: {id = $ (this) .val()}" a "data: {id: $ (this) .val()" - Nota: "=" è sostituito da ":". Grazie. – paweln66