在@code中访问@Inject变量-.net Core Blazor

问题描述 投票:-1回答:1

我是Blazor .net Core的新手。我已经在.razor页面中注入了服务设置

@inject Microsoft.Extensions.Options.IOptions<Configuration> Configuration

接下来,我在下面的@code指令中初始化_m对象

@code 
{
    private ViewModel _m = new ViewModel(Configuration.Value);

    protected async Task DoSearchAsync()
    {
        await _m.PerformSearchAsync();
    }
}

在[[ConfigureServices中注册的代码:]

services.Configure<Configuration>(options => Configuration.GetSection("ConfigurationSettings").Bind(options));

Configuration.cs

public class Configuration { private string ServiceEndpointUrl { get; set; } }
我需要将Configuration传递给采用ViewModel()IOptions<T>构造函数,但是由于某些原因,我无法在@code指令中访问我注入的变量“ Configuration”。我该如何访问?
asp.net-core razor core blazor razorengine
1个回答
0
投票
您可以通过以下方法访问注入的服务:

@inject Microsoft.Extensions.Options.IOptions<Configuration> cfg @code { private ViewModel _m; protected override void OnInitialized() { base.OnInitialized(); _m = new ViewModel(cfg.Value); } protected async Task DoSearchAsync() { await _m.PerformSearchAsync(); } }

© www.soinside.com 2019 - 2024. All rights reserved.