সুতরাং এখানে তালিকাভুক্ত ব্যক্তিদের কেউই আমার পক্ষে কাজ করেনি, তবে কয়েকটি উত্তর ব্যবহার করে আমার কিছু কাজ হয়েছে:
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;
}
এএসপি.নেট কোর / এমভিসি 6 এর জন্য আপডেট:
ASP.NET Core
এই প্রক্রিয়াটিকে কিছুটা আরও বেদনাদায়ক করে তোলে, বিশেষত যদি আপনি নিজের কোডটিতে গভীর থাকেন। আপনার কাছে পেতে দুটি বিকল্প রয়েছে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
? ধন্যবাদ!