2014-07-05 872 views
6

Desidero inviare un messaggio di posta elettronica all'utente dove può fare clic sul collegamento per il trasferimento al mio sito. Non voglio codificare l'URL nei miei modelli di email. Voglio questa dinamica nel senso che qualunque sia l'ambiente che invierà l'url correlato. Ad esempio, se sono nell'ambiente di sviluppo, invia qualcosa come http://localhost:port o in produzione invia l'URL del sito web effettivo. http://www.domain.comCome ottenere l'URL di base del sito in MVC

Ho solo bisogno di sapere come posso salvarlo in DynamicViewBag in azione MVC. Qualche suggerimento?

+0

http://stackoverflow.com/questions/8638962/what-is- the-best-way-to-get-the-base-url-from-a-controller –

risposta

7

Si può fare questo:

var dynamicViewBag = new DynamicViewBag(); 
dynamicViewBag.AddValue("BaseUrl", Request.Url.GetLeftPart(UriPartial.Authority)); 
+0

Come posso impostarlo in DynamicViewBag? –

+0

Grazie mille. Potrebbe piacere anche di farmi sapere, come posso accedervi? Dal modo in cui ho contrassegnato il tuo suggerimento come risposta perché questo è quello che ho veramente chiesto nella domanda. Mi chiedo se per favore mi aiuti ad accedervi in ​​vista –

+0

Prova @ ViewBag.BaseUrl – David

13

È possibile utilizzare le proprietà dell'oggetto Request, per esempio

var request = HttpContext.Current.Request 
var address = string.Format("{0}://{1}", request.Url.Scheme, request.Url.Authority); 
Problemi correlati