[asp.net] Création d'une URL dans le contrôleur .NET MVC



Answers

Si vous avez besoin de l'URL complète (par exemple pour envoyer par courrier électronique), envisagez d'utiliser l'une des méthodes intégrées suivantes:

Avec ceci vous fixez le chemin de route à utiliser pour la construction de l'URL:

Url.RouteUrl("OpinionByCompany", new RouteValueDictionary(new{cid=newop.CompanyID,oid=newop.ID}), HttpContext.Request.Url.Scheme, HttpContext.Request.Url.Authority)

Ici, l'URL est créée après que le moteur de route a déterminé le bon:

Url.Action("Detail","Opinion",new RouteValueDictionary(new{cid=newop.CompanyID,oid=newop.ID}),HttpContext.Request.Url.Scheme, HttpContext.Request.Url.Authority)

Dans les deux méthodes, les deux derniers paramètres spécifient le protocole et le nom d'hôte.

Cordialement.

Question

Je dois être capable de construire un lien dans l'action sur le contrôleur pour envoyer un email. Quelle est la meilleure pratique pour le faire? Je ne veux pas le construire moi-même au cas où mes routes changeraient.

Dois-je avoir une vue pour chaque email et le rendre et l'envoyer? Ce pourrait être un bon moyen de le faire.




Une autre façon de créer une URL absolue pour une action:

var relativeUrl = Url.Action("MyAction");  //..or one of the other .Action() overloads
var currentUrl = Request.Url;

var absoluteUrl = new System.Uri(currentUrl, relativeUrl);



Links