Как получить полное имя сервера и порт, работающий в MVC 2 по codebehind - PullRequest
3 голосов
/ 19 января 2011

привет каждому телу у меня есть вопрос

пример, если у меня есть URL: http://localhost:8512/bookuser/Create

как получить "http://localhost:8512" по коду позади в mvc2 ??

Спасибо за внимание

Ответы [ 4 ]

8 голосов
/ 24 июля 2013

В следующем разделе вы получите протокол, хост и портовую часть запроса

Request.Url.GetLeftPart(UriPartial.Authority)
2 голосов
/ 09 января 2012

В MVC3, самое непосредственное, Вы можете сделать это следующим образом (должно быть примерно одинаково): Внутри .cs, Вы можете использовать код, подобный этому:

Uri uri = HttpContext.Current.Request.Url;
String absoluteUrlBase = String.Format(
    "{0}://{1}{2}{3}"
    uri.Scheme,
    uri.Host,
    (uri.IsDefaultPort
        ? ""
        : String.Format(":{0}", uri.Port));

в .cshtml, Выможно использовать

string absoluteUrlBase = String.Format(
    "{0}://{1}{2}{3}"
    Request.Url.Scheme
    Request.Url.Host + 
    (Request.Url.IsDefaultPort
        ? ""
        : String.Format(":{0}", Request.Url.Port)); 

. В обоих случаях absoluteUrlBase будет http://localhost:8512 или http://www.contoso.com.

. Вы также можете перейти по ссылке VoodooChild ...

1 голос
/ 19 января 2011

Попробуйте:

Request.Url.AbsoluteUri

Содержит информацию о запрашиваемой странице.

Кроме того, сохраните эту ссылку для дальнейшего использования

0 голосов
/ 19 января 2011

Найдите первый символ "/" после "http://" - вот фрагмент кода:

public class SName {

    private String  absUrlStr;

    private final static String slash = "/", htMarker = "http://";

    public SName (String s) throws Exception {
            if (s.startsWith (htMarker)) {
                    int slIndex = s.substring(htMarker.length()).indexOf(slash);
                    absUrlStr = (slIndex < 0) ? s : s.substring (0, slIndex + htMarker.length());
            } else {
                    throw new Exception ("[SName] Invalid URL: " + s);
    }}

    public String toString () {
            return "[SName:" + absUrlStr + "]";
    }

    public static void main (String[] args) {
            try {
                    System.out.println (new SName ("http://localhost:8512/bookuser/Create"));
            } catch (Exception ex) {
                    ex.printStackTrace();
}}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...