2016-04-13 8 views
6

Sto usando ASP.net coreCome ottenere @ valore Url.Action dentro un controllore

posso usare un'azione HTML all'interno di una vista

@Url.Action("GetOptions", "ControllerName", new { id="1"}); 

Tuttavia voglio ottenere un valore di stringa di esso nel controller.

ad es. qualcosa come

string Url= Url.Action("GetOptions", "ControllerName", new { id="1"}).ToString(); 

Nelle versioni precedenti di MVC è possibile fare riferimento l'assistente del controllore da

UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext); 

Fondamentalmente quello che voglio fare è generare una rappresentazione stringa URL nel mio controller

+0

'Html.Action()' chiama un metodo controller per restituire una vista. Vuoi dire 'Url.Action()' –

+0

Sì. corretto il mio post – greay

+1

'string url = Url.Action (" GetOptions "," ControllerName ", new {id = 1});' funzionerà –

risposta

3

In Perchè i valori dell'itinerario funzionino correttamente per me ho dovuto usare l'invocazione statica degli helper dell'URL

UrlHelperExtensions.Action(Url, "Details", "Resellers", new { id = 1 })

Edit: Il modo veloce per scrivere questo è:

this.Url.Action("Details", "Resellers", new { id = 1 })

Grazie @Learner.

+2

Quindi potresti aver appena chiamato 'this.Url.Action (" Dettagli "," Rivenditori ", nuovo {id = 1})' – Learner