What is the ASP.NET Core MVC equivalent to Request.RequestURI?(与 Request.RequestURI 等效的 ASP.NET Core MVC 是什么?)
问题描述
我找到了一个 博客文章 展示了如何将熟悉的东西(如 HttpResponseMessage)填充"回 ASP.NET Core MVC,但我想知道与以下代码执行相同操作的新本地方法是什么在控制器中的 REST Post 方法中:
I found a blog post that shows how to "shim" familiar things like HttpResponseMessage back into ASP.NET Core MVC, but I want to know what's the new native way to do the same thing as the following code in a REST Post method in a Controller:
// POST audit/values
[HttpPost]
public System.Net.Http.HttpResponseMessage Post([FromBody]string value)
{
var NewEntity = _repository.InsertFromString(value);
var msg = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Created);
msg.Headers.Location = new Uri(Request.RequestUri + NewEntity.ID.ToString());
return msg;
}
在 ASP.NET Core MVC 项目中,我似乎无法获取 Request.RequestUri.
In an ASP.NET Core MVC project, I can't seem to get Request.RequestUri.
我尝试检查请求,并且能够创建这样的函数:
I tried inspecting Request, and I was able to make a function like this:
private string UriStr(HttpRequest Request)
{
return Request.Scheme + "://" + Request.Host + Request.Path; // Request.Path has leading /
}
所以我可以改写 UriStr(Request).但我不确定这是否正确.我觉得我在乱用,并且没有正确使用它.
So I could write UriStr(Request) instead. But I'm not sure that's right. I feel like I'm hacking my way around, and not using this correctly.
早期非核心 ASP 的相关问题.NET MVC 版本询问如何获取站点的基本 url.
A related question for earlier non-Core ASP.NET MVC versions asks how to get the base url of the site.
推荐答案
更简洁的方法是使用 UriBuilder:
A cleaner way would be to use a UriBuilder:
private static Uri GetUri(HttpRequest request)
{
var builder = new UriBuilder();
builder.Scheme = request.Scheme;
builder.Host = request.Host.Value;
builder.Path = request.Path;
builder.Query = request.QueryString.ToUriComponent();
return builder.Uri;
}
(未测试,代码可能需要一些调整)
(not tested, the code might require a few adjustments)
这篇关于与 Request.RequestURI 等效的 ASP.NET Core MVC 是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:与 Request.RequestURI 等效的 ASP.NET Core MVC 是什么?
- 为什么 C# 中的堆栈大小正好是 1 MB? 2022-01-01
- 是否可以在 .Net 3.5 中进行通用控件? 2022-01-01
- C# 通过连接字符串检索正确的 DbConnection 对象 2022-01-01
- 使用 rss + c# 2022-01-01
- 带问号的 nvarchar 列结果 2022-01-01
- 在 C# 中异步处理项目队列 2022-01-01
- Azure Active Directory 与 MVC,客户端和资源标识同一 2022-01-01
- Windows 喜欢在 LINUX 中使用 MONO 进行服务开发? 2022-01-01
- CanBeNull和ReSharper-将其用于异步任务? 2022-01-01
- 在 LINQ to SQL 中使用 contains() 2022-01-01
