Orchardcms 如何在orchard中使用租户获取基本url?

Orchardcms 如何在orchard中使用租户获取基本url?,orchardcms,Orchardcms,如何在Orchard中获取带有租户前缀的基本url?我有一个租户根url,例如domain.com/tenant var httpContextAccessor = GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(IHttpContextAccessor)) as IHttpContextAccessor; var workContext = WorkContextExtensions.GetWorkC

如何在Orchard中获取带有租户前缀的基本url?我有一个租户根url,例如
domain.com/tenant

var httpContextAccessor = GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(IHttpContextAccessor)) as IHttpContextAccessor;
var workContext = WorkContextExtensions.GetWorkContext(httpContextAccessor.Current().Request.RequestContext);
return workContext.CurrentSite.BaseUrl;
当我使用此代码时,我只得到http:\domain.com,没有租户前缀


非常感谢您的回答。

使用
外壳设置。此对象包含Settings.txt文件中定义的所有租户信息

var settings = workContext.Resolve<ShellSettings>();
var host = settings.RequestUrlHost;  
var prefix = settings.RequestUrlPrefix;
var settings=workContext.Resolve();
var host=settings.RequestUrlHost;
var prefix=settings.RequestUrlPrefix;
现在,您需要将已经获得的基本URL与上面的租户前缀相结合


如果要获取考虑当前租户的相对路径,请使用
Request.AppRelativeCurrentExecutionFilePath
。例如,如果您的租户是
example.com/tenant
,并且您正在请求page
example.com/tenant/mypage
,它将返回
~/mypage
。根据您的场景,这可能也很有用。

我现在无法检查它,只需查看调试器中的请求对象,它就在某个地方(如果没有,则在HttpContext中的某个更高级别)。谢谢,我想,它就在那里。但是当我不知道它是tennant还是根web时,我就不知道which slash是根,比如domain.com/tennant/item或domain.com/blog/blogitem。