2013-05-30 14 views
6

I Parameter bin vorbei an @ Url.Action wie folgt aus:Pass Variable als Parameter 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'); 
    }); 
} 

Aber gibt Fehler "der Name myid existiert nicht im aktuellen Kontext".

Wie kann ich die Variable übergeben?

ich dieses Problem gelöst, das ist die Lösung:

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

Mögliche duplizieren [http://stackoverflow.com/questions/9751109/javascript-variable-in- razor-actionlink] (http://stackoverflow.com/questions/9751109/javascript-variable-in-razor-actionlink) –

Antwort

8

Ich löste es dies durch den Einsatz:

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

Sie sind hier serverseitigen und clientseitigen Code zu mischen. Sie können eine Javascript-Variable nicht wie diese in die Url.Action-Methode übergeben.

Sie müssen wie etwas tun:

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

Oder aber, dass die ID aus dem Server-Modell laden.

-1
old one 
function showHistory() 
{ 

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

Neue ein

function showHistory() 
{ 

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

Das wird nicht funktionieren. Das würde versuchen, den String-Wert "+ myId +" der ID – CodingIntrigue

+0

zuzuweisen. Das hat bei mir nicht funktioniert. Ich habe buchstäblich den Text "myId" als Wert für ID bekommen. – boilers222