2013-05-30 3 views
6

sto passando parametri @ Url.Action in questo modo:variabile passa come parametro per Url.Action in javascript

function showHistory() 
{ 

myId= $("#id").val(); 
    //alert(myId); 
    actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = myId, sort = "abc"})", function () { 
     actionDialog.dialog('open'); 
    }); 
} 

ma dà errore "il nome myid non esiste nel contesto attuale".

Come posso passare la variabile?

Ho risolto questo, questa è la soluzione:

function showHistory() 
{ 

myId= $("#id").val(); 
//alert(myId); 
actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = "_Id", sort = "abc"})".replace("_Id", DeviceID), function ()  { 
actionDialog.dialog('open'); 
}); 
} 
+0

Eventuali duplicati [http://stackoverflow.com/questions/9751109/javascript-variable-in- razor-actionlink] (http://stackoverflow.com/questions/9751109/javascript-variable-in-razor-actionlink) –

risposta

8

ho risolto utilizzando questo:

function showHistory() 
{ 
    myId= $("#id").val(); 
    actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = "_Id", sort = "abc"})".replace("_Id", DeviceID), function ()  { 
     actionDialog.dialog('open'); 
    }); 
} 
2

Stai mescolando codice lato server e lato client qui. Non puoi passare una variabile Javascript nel metodo Url.Action come quello.

Lei avrebbe bisogno di fare qualcosa di simile:

function showHistory() 
{ 
    myId= $("#id").val(); 
    actionDialog.load("@Url.Action("ActionHistoryAjax", new { sort = "abc"})" + 
         "&id=" + encodeURIComponent(myId), function () { 
     actionDialog.dialog('open'); 
    }); 
} 

Oppure caricare il ID dal modello di server.

-1
old one 
function showHistory() 
{ 

    myId= $("#id").val(); 
    //alert(myId); 
    actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = myId, sort = "abc"})", 
    function () { 
    actionDialog.dialog('open'); 
    }); 
} 

nuovo

function showHistory() 
{ 

myId= $("#id").val(); 
//alert(myId); 
    actionDialog.load("@Url.Action("ActionHistoryAjax", new {id = "+ myId +", 
    sort = "abc"})", function () { 
    actionDialog.dialog('open'); 
}); 
} 
+0

Che non funzionerà. Questo proverebbe ad assegnare il valore di stringa "+ myId +" all'id – CodingIntrigue

+0

Questo non ha funzionato per me. Ho letteralmente ottenuto il testo "myId" come valore per l'id. – boilers222