c# - 无法获取 Web API 控制器方法的 URL
问题描述
环境:C# Core 3.1 WebApi 项目。
在我的控制器中,我试图获取当前 URL,但得到一个空值。我使用 Url 类尝试了很多事情:
var x = Url.Link("https://localhost:44397/api/Account/Accounts/", new { a = 1, b = 2 });
var y = Url.RouteUrl("www.xyz.com", new { a = 3, b = 4 });
var url = Url.Link("GetAuthors", authorsResourceParameters);
var r = Url.RouteUrl("This route");
var yd = Url.Action("myAction", "myController", authorsResourceParameters, "https");
Url 类来自 Microsoft.AspNetCore.Mvc.Routing.EndpointRoutingUrlHelper。这是正确的命名空间吗?
我错过了什么?
解决方案
您可以使用以下代码:
var request = HttpContext.Request;
var uri = string.Concat(request.Scheme,"://",
request.Host.ToUriComponent(),
request.PathBase.ToUriComponent(),
request.Path.ToUriComponent(),
request.QueryString.ToUriComponent());
祝你好运。
推荐阅读
- angular - 如何将字体真棒库提取到一个单独的库中?
- sql - 在 Oracle PLSQL 中,如果列中已包含数值,则无法使用字母数字更新 VARCHAR2 列
- oracle - PLS-00103:预期错误时遇到符号“文件结尾”
- sql-server - 将 Varbinary 转换为 XML 时的 TSQL“非法 XML 字符”
- excel - 实现更改事件以检查文本框值的更改并启用“应用”按钮
- r - 在 redHat CentOs 7 上安装 R。我无法克服的几个错误和依赖项
- angular - ngFor 查找第一个和最后一个以及总索引
- javascript - 如何在html中创建链接
- python - 尝试读取 AWS SNS 消息时出错
- solr - 如何在 solr 中实现语音搜索的突出显示?