gpt4 book ai didi

c# - 从 Razor View 中获取绑定(bind) URL

转载 作者:行者123 更新时间:2023-12-03 07:51:23 27 4
gpt4 key购买 nike

我想在 Razor Pages View 中显示 Web 服务器的绑定(bind) URL。我可以从 Main 中访问它们,如下所示:

    var builder = WebApplication.CreateBuilder(args);
//...
var app = builder.Build();
//...
await app.StartAsync();
//...
// Debug here...

...通过在“调试此处”处设置断点并检查 app.Urls (应用程序是 Microsoft.AspNetCore.Builder.WebApplication),但我可以请勿在 DI 配置期间添加此内容,因为它仅在 StartAsync 之后才会填充。那么,我如何从该 Web 应用程序中运行的 Razor Pages View 中访问此信息?

最佳答案

创建自定义配置类来保存 URL。

public class WebServerUrls
{
public List<string> Urls { get; set; } = new List<string>();
}

在您的 Program.cs 文件中,添加此自定义配置类的注册作为单例服务:

builder.Services.AddSingleton<WebServerUrls>();
// ...


var builder = WebApplication.CreateBuilder(args);
// ...

var app = builder.Build();
// ...

await app.StartAsync();
var webServerUrls = app.Services.GetRequiredService<WebServerUrls>();
webServerUrls.Urls.AddRange(app.Urls);

// ...

在 Razor Pages View 中,使用 @inject 指令注入(inject) WebServerUrls 类并访问绑定(bind)的 URL:

@page
@model YourPageModel

@inject WebServerUrls WebServerUrls

<h1>Bound URLs</h1>

<ul>
@foreach (var url in WebServerUrls.Urls)
{
<li>@url</li>
}
</ul>

关于c# - 从 Razor View 中获取绑定(bind) URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77054135/

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