Le code ci-dessous est un piratage terrible.
Uri linkUri = HttpContext.Current.Request.Url;
string link = linkUri.ToString().Substring(0, linkUri.ToString().IndexOf("Users/Create"));
4 Réponses :
Vous pouvez utiliser le contenu a > Méthode de urlhelper code>:
Je reçois un message d'erreur; "Une référence d'objet est requise pour la méthode de champ non statique, ou la propriété 'System.Web.MVC.URLHELPER.Content (String)'"
Oui, vous avez besoin d'une référence à un Urlhelper. Si vous écrivez ce code dans un contrôleur, vous avez déjà la propriété url code> sur laquelle vous pouvez appeler la méthode code> Content code>. Si c'est dans une vue: <% = url.content ("~ /")%> code>.
Je n'utilise pas ce code dans une vue. Je suis codé dans une classe, où Urlhelper n'a pas de méthode de contenu.
Vous pouvez utiliser un contrôleur à l'intérieur (nouveau Urlhelper (cet Urlhelper (ce.ControlContext.RequestContext)). Contenu ("~ /")
Je semble seulement avoir le "/"
@Darindimitrov - Je suggère d'intégrer le contenu de votre commentaire dans le corps de la réponse (comme la réponse actuelle ne "compile pas") url.content ("~") b> pour la victoire!
C'est assez moche, mais que diriez-vous:
uri.GetLeftPart(UriPartial.Authority)
Oui c'est certainement une amélioration. Je vais attendre et voir quelles autres réponses que je reçois, mais c'est le meilleur jusqu'à présent.
Faire du sens des chemins ASP.NET - Le journal Web de Rick Strahl P>
à quoi ça se passe? Demande.ApplicationPath p>
Je ne peux accéder que l'objet de demande comme suit; Httpcontext.current.request.ApplicationPath. Tous ces retours sont un "/".
var rootUrl = System.Web.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);