与 Request.RequestURI 等效的 ASP.NET Core MVC 是什么?

1

本文介绍了与 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 是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

C# 中的多播委托奇怪行为?
Multicast delegate weird behavior in C#?(C# 中的多播委托奇怪行为?)...
2023-11-11 C#/.NET开发问题
6

参数计数与调用不匹配?
Parameter count mismatch with Invoke?(参数计数与调用不匹配?)...
2023-11-11 C#/.NET开发问题
26

如何将代表存储在列表中
How to store delegates in a List(如何将代表存储在列表中)...
2023-11-11 C#/.NET开发问题
6

代表如何工作(在后台)?
How delegates work (in the background)?(代表如何工作(在后台)?)...
2023-11-11 C#/.NET开发问题
5

没有 EndInvoke 的 C# 异步调用?
C# Asynchronous call without EndInvoke?(没有 EndInvoke 的 C# 异步调用?)...
2023-11-11 C#/.NET开发问题
2

Delegate.CreateDelegate() 和泛型:错误绑定到目标方法
Delegate.CreateDelegate() and generics: Error binding to target method(Delegate.CreateDelegate() 和泛型:错误绑定到目标方法)...
2023-11-11 C#/.NET开发问题
14