2016-11-29 8 views
1

AppベースURLを取得するような単純なものは、基本的に私は私がローカルまたはhttp://myapp.azurewebsites.com/アプリを実行している場合、それは、リモートだ場合、このメソッドはhttp://localhost:2000/を返すようにしたいVisual Studio 2015 C#MVC ::私のアプリケーションのベースURLを取得する方法?

で来るのは難しいように思わどのように衝撃的です。

How to get base url of the site in MVCに続いて、文字通り矛盾する結果が得られました。

+0

これらの競合についてもう少し詳しく教えてください。 – celerno

+0

Hey Celerno、何らかの理由で 'Request'が私のために働いていなかった。私は他の場所で解決策を見つけた – codiiv

答えて

0

私はこの1つを見つけました。それは期待どおりに動作するようです。私はレポを作成し、役立ついくつかのヘルプメソッドを追加します。

public string Root 
    { 
     get 
     { 
      var context = HttpContext.Current; 
      if (context != null) 
      { 
       var request = context.Request; 
       var scheme = request.Url.Scheme; 
       var server = request.Headers["Host"] ?? string.Format("{0}:{1}", request.Url.Host, request.Url.Port); 
       var host = string.Format("{0}://{1}", scheme, server); 
       var root = host + VirtualPathUtility.ToAbsolute("~"); 
       return root; 
      } 
      return string.Empty; 
     } 
    } 
    public string getBaseUrl() 
    { 
     string baseURL = HttpContext.Current.Request.Url.Host; 
     return Root; 
    } 
関連する問題