gpt4 book ai didi

c# - ASP.NET Core UrlHelper 及其工作原理

转载 作者:太空狗 更新时间:2023-10-29 20:58:10 26 4
gpt4 key购买 nike

我是 ASP.NET Core 的新手,现在我正试图了解 UrlHelper 的一般工作原理。

在我的 Controller 中,我想为同一 Controller 中的另一个操作创建一个绝对 URL,例如http://localhost:PORT/api/controller/action。现在的问题是,我该怎么做?

我试过以下方法:

var urlHelper = new UrlHelper(new ActionContext());
var url = urlHelper.Action("ACTION", "CONTROLLER");

此外,ActionContext 等不同的上下文是什么?

最佳答案

你真的不应该自己创建一个 UrlHelper。很可能无论您当前处于什么上下文中,都已经有一个 IUrlHelper实例可用:

很有可能,您只需访问 this.Url 即可获得 URL 帮助程序。

如果你发现自己处于不存在的情况下,例如在实现自己的服务时,那么你总是可以注入(inject) IUrlHelperFactory连同 IActionContextAccessor首先检索当前操作上下文,然后为其创建一个 URL 帮助器。

至于那是什么ActionContext也就是说,它基本上是一个包含各种值的对象,这些值标识正在处理当前请求的当前 MVC 操作上下文。因此它包含有关实际请求、解析的 Controller 和操作或有关绑定(bind)模型对象的模型状态的信息。它基本上是对 HttpContext 的扩展,还包含特定于 MVC 的信息。


如果您运行的是 ASP.NET Core 2.2 或更高版本,您还可以使用 LinkGenerator而不是在您的服务中使用 IUrlHelper,与必须通过 IUrlHelperFactory 构建帮助程序相比,这为您提供了一种更简单的生成 URL 的方法。

关于c# - ASP.NET Core UrlHelper 及其工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52536969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com