Asp.net mvc 在Asp.net核心视图中获取当前Url的替代方法是什么
我目前正在将MVC项目迁移到Asp.Net核心项目,在布局页面中,我使用了一段代码来获取当前的基本url e、 g:如果我运行托管在IIS服务器中的MVC应用程序,那么我使用虚拟目录来创建MVC应用程序,如下所示: https://mydomain/myMVCApplication/Login 然后在视图中使用下面的代码,我可以得到虚拟目录的Url https://mydomain/myMVCApplication/Asp.net mvc 在Asp.net核心视图中获取当前Url的替代方法是什么,asp.net-mvc,asp.net-core,Asp.net Mvc,Asp.net Core,我目前正在将MVC项目迁移到Asp.Net核心项目,在布局页面中,我使用了一段代码来获取当前的基本url e、 g:如果我运行托管在IIS服务器中的MVC应用程序,那么我使用虚拟目录来创建MVC应用程序,如下所示: https://mydomain/myMVCApplication/Login 然后在视图中使用下面的代码,我可以得到虚拟目录的Url https://mydomain/myMVCApplication/ var baseUrl=@Html.Raw(System.Web.HttpU
var baseUrl=@Html.Raw(System.Web.HttpUtility.JavaScriptStringEncode(新Uri(新Uri(this.Context.Request.Url.GetLeftPart(UriPartial.Authority)),Url.Content(“~/”)).ToString(),true))代码>您可以试试这个
Microsoft.AspNetCore.Http.Extensions.UriHelper.GetFullUrl(请求)您可以使用此
@{
var baseUrl = HttpContext.Request.IsHttps ? $"https://{HttpContext.Request.Host}" : $"http:{HttpContext.Request.Host}"
}
在Asp.net核心应用程序中,您可以尝试使用Microsoft.AspNetCore.Http.HttpRequest
类或Microsoft.AspNetCore.Http.Extensions
获取URL。然后,使用ViewData在action方法中存储URL,并在View页面上显示URL
使用Microsoft.AspNetCore.Http.HttpRequest
类
ViewData["Message"] = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
或
使用Microsoft.AspNetCore.Http.Extensions
使用以下代码:
var displayUrl = UriHelper.GetDisplayUrl(Request);
var urlBuilder =
new UriBuilder(displayUrl)
{
Query = null,
Fragment = null
};
string url = urlBuilder.ToString();
ViewData["Message"] = url;
查看页面中的代码:
@{
if (ViewData["Message"] != null)
{
@ViewData["Message"]
};
}
双引号内的大括号格式不正确。请修改您的代码并提供。我正在使用带$的字符串插值,大括号应该可以工作,您可以粘贴您面临的错误吗?当我使用建议的代码时,我发现HttpContext类中存在编译错误。我在视图顶部添加了reference inject Microsoft.AspNetCore.Http.ihttppcontextaccessor HttpContextAccessor,然后像这样使用:var baseUrl=HttpContextAccessor.HttpContext.Request.IsHttps$“https://{HttpContext.Request.Host}”:$“http:{HttpContext.Request.Host}”和获取控制台错误:意外字符串。这段代码是我在javascript中使用的。请检查。Request.Host仅提供域名,不提供域和虚拟目录。使用Request.Host和Request.PathBase按预期提供正确的结果。此处的Request是什么?请解释。获取编译错误:UriHelper不包含GetFullUrl的定义。this.Request.PathBase使用此命令完成了工作。我正在获取具有虚拟目录的域。
@{
if (ViewData["Message"] != null)
{
@ViewData["Message"]
};
}