Request.RequestURI的ASP.NETCoreMVC等价物是什么?我发现了一篇博客文章,展示了如何将HttpResponseMessage等熟悉的东西“重新填充”回ASP.NETCoreMVC,但我想知道在RESTPost方法中使用以下代码进行相同操作的新本机方法是什么。控制器://POST审计/值[HttpPost]publicSystem.Net.Http.HttpResponseMessagePost([FromBody]stringvalue){varNewEntity=_repository.InsertFromString(value);varmsg=newSystem.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Created);msg.Headers.Location=newUri(Request.RequestUri+NewEntity.ID.ToString());返回消息;在ASP.NETCoreMVC项目中,我似乎无法获取请求.RequestUri。我尝试检查Request并且能够创建这样的函数:privatestringUriStr(HttpRequestRequest){returnRequest.Scheme+"://"+Request.Host+Request.Path;//Request.Path有前导/}所以我可以覆盖UriStr(Request)。但我不确定这是对的。我觉得我在黑客攻击并且没有正确使用它。早期非核心ASP.NETMVC版本的一个相关问题询问如何获取站点的基本URL。一种更UriBuilder的方式是使用UriBuilder:privatestaticUriGetUri(HttpRequestrequest){varbuilder=newUriBuilder();builder.Scheme=request.Scheme;builder.Host=request.Host.Value;builder.Path=request.Path;builder.Query=request.QueryString.ToUriComponent();返回生成器.Uri;}(未经测试,代码可能需要一些调整)我个人使用:newUri(request.GetDisplayUrl())GetDisplayUrl是命名空间中的以下扩展方法:Microsoft.AspNetCore.Http.Extensions这是一个有效的代码。这是基于@ThomasLevesque的回答,当请求来自自定义端口时,该回答不起作用。以上是C#学习教程:ASP.NETCoreMVC等价于Request.RequestURI是什么?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——Host.ToUriComponent().Split(':');varbuilder=newUriBuilder{Scheme=request.Scheme,Host=hostComponents[0],Path=request.Path,Query=request.QueryString.ToUriComponent()};如果(hostComponents.Length==2){builder.Port=Convert.ToInt32(hostComponents[1]);}返回生成器。Uri;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
