इसलिए यहां सूचीबद्ध लोगों में से किसी ने भी मेरे लिए काम नहीं किया, लेकिन कुछ उत्तरों का उपयोग करके, मुझे कुछ काम मिला:
public string GetBaseUrl()
{
var request = HttpContext.Current.Request;
var appUrl = HttpRuntime.AppDomainAppVirtualPath;
if (appUrl != "/")
appUrl = "/" + appUrl;
var baseUrl = string.Format("{0}://{1}{2}", request.Url.Scheme, request.Url.Authority, appUrl);
return baseUrl;
}
ASP.NET कोर / MVC 6 के लिए अद्यतन:
ASP.NET Core
इस प्रक्रिया को थोड़ा अधिक दर्दनाक बनाता है, खासकर यदि आप अपने कोड में गहरे हैं। पर पाने के लिए आपके पास 2 विकल्प हैंHttpContext
1) इसे अपने पास से controller
:
var model = new MyClass(HttpContext);
फिर इसमें model
:
private HttpContext currentContext;
public MyClass(HttpContext currentContext)
{
this.currentContext = currentContext;
}
2) शायद क्लीनर का तरीका इसे अपनी कक्षा में इंजेक्ट करना है, जो आपके प्रकारों को पंजीकृत करने के साथ शुरू होता है Startup:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddTransient<MyClass, MyClass>();
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}
फिर इसे आपके लिए इस तरह इंजेक्ट किया जाता है:
private HttpContext currentContext;
public MyClass(IHttpContextAccessor httpContextAccessor)
{
currentContext = httpContextAccessor.HttpContext;
}
या तो मामले में, यहाँ के लिए अद्यतन किया गया है .NET Core
GetBaseUrl()
:
public string GetBaseUrl()
{
var request = currentContext.Request;
var host = request.Host.ToUriComponent();
var pathBase = request.PathBase.ToUriComponent();
return $"{request.Scheme}://{host}{pathBase}";
}
urlHelper.Content("~")
? मैं परिभाषित कैसे बनाऊँurlHelper
? धन्यवाद!