2023-02-17 448
如何快速确定我的ASP.NET MVC应用程序的根URL是什么?即,如果IIS设置为我的申请,请通过 http://example.com/foo/bar/bar ,,然后,我希望能够以可靠的方式获取该URL,这不涉及从请求中获取当前的URL并以某种脆弱的方式将其切碎,如果我重新撤消了我的动作.
我需要基本URL的原因是该Web应用程序调用另一个需要用于回调的呼叫者Web应用程序的词根.
假设您有一个可用的请求对象,可以使用:
string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));
如果不可用,您可以通过上下文来了解:
var request = HttpContext.Current.Request
所以这里列出的都不适合我,但是使用一些答案,我得到了一些工作:
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 core/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}";
}
代码:
Url.Content("~/");
mvc3剃须刀语法:
@Url.Content("~/")
以上所述是小编给大家介绍的如何在ASP.NET MVC中获得我的webapp'的基本URL?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/34242.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态