2012-07-22 9 views
15

Ho un metodo javascript onRowSelected wchich viene identificativo. Come passare il rowid in determinate azioni di un controller con HttpGet?Javascript azione url in vista rasoio

function onRowSelected(rowid, status) { 
     alert('This row has id: ' + rowid); 
     //url: @Action.Url("Action","Controller") 
     //post:"GET" 
     // Something like this? 
    } 

risposta

39

Se l'azione del controller si aspetta un parametro id stringa di query:

var url = '@Url.Action("Action", "Controller")?id=' + rowid; 

o se si vuole passare come parte del percorso è possibile utilizzare la sostituzione:

var url = '@Url.Action("Action", "Controller", new { id = "_id_" })' 
    .replace('_id_', rowid); 

ancora un'altra possibilità, se avete intenzione di inviare una richiesta AJAX è quello di passare come parte del corpo POST:

$.ajax({ 
    url: '@Url.Action("Action", "Controller")', 
    type: 'POST', 
    data: { id: rowid }, 
    success: function(result) { 

    } 
}); 

o come parametro di stringa di query se si utilizza GET:

$.ajax({ 
    url: '@Url.Action("Action", "Controller")', 
    type: 'GET', 
    data: { id: rowid }, 
    success: function(result) { 

    } 
}); 

Tutti coloro supponiamo che la vostra azione di controllo accetta un parametro id naturalmente:

public ActionResult Action(string id) 
{ 
    ... 
} 

Quindi, come potete vedere molti modi per raggiungere lo stesso obiettivo.

+0

mi chiedo perché la prima risposta non sta funzionando. Le risposte ajax funzionano bene. – nebula

+0

Come appare l'URL generato finale nel codice sorgente? –

+0

Nessun evento è attivato anche in firebug. L'URL non cambia. – nebula

Problemi correlati