2014-06-12 14 views
8

Come si inviano più parametri in un Url.Action?Come si inviano più parametri in un Url.Azione?

Possiedo un controller con un'azione e desidero 2 parametri, ma il secondo parametro non viene ricevuto.

Il mio codice è:

@Url.Action("Products", "Jquery", new { categoryid = 1, Productid = 2}) 

Publc Action Jquery(int categoryid ,int Productid) 
{ 

} 

ma ho solo ricevo categoryid, ogni volta Productid è nullo.

Si prega di suggerire a me cosa fare?

+0

si specifica il 'categoryid' come una stringa, ma nel metodo azione' Jquery' la firma utilizza un '' int' per categoryid'. Prova 'new {categoryid = 1, Productid = 2}' –

+0

non sono sicuro che sia un refuso ma il tipo restituito dovrebbe essere 'ActionResult' e il parametro è misto .. dovrebbe essere' @ Url.Action ("actionName "," controllerName "," object params ")' –

+0

@robwaminal Puoi dirmi come usare "object params" qui? –

risposta

8

provare in questo modo.

@Url.Action("Jquery", "Products", new { @categoryid = 1, @Productid = 2}) 

public ActionResult Jquery(int categoryid, int Productid) 
{ 
    return View(); 
} 

si dovrebbe ottenere i 2 parametri nella vostra azione. Supponendo che l'azione Jquery sia inferiore a ProductController

+0

ho provato questo, ma non funziona, non posso ricevere il secondo para. è sempre nullo –

+0

aggiungendo '@' sui parametri oggetto param dovrebbe risolvere il problema –

+0

in realtà, non importa, se si prefissa il param con '@' o no. Funziona ancora il primo. Non sono sicuro di come spiegarlo. Forse hai qualche errore di battitura? –

7

Hai chiamato questa azione da JQuery? Sembra che tu possa essere dai sintomi (o almeno @roberto potrebbe essere); in caso affermativo avvolgerlo in Html.Raw:

@Html.Raw(@Url.Action("Jquery", "Products", new { @categoryid = 1, @Productid = 2})); 
Problemi correlati