简体   繁体   English

TELERIK Grid Blazor- Type arguments for parameter cannot be inferred from usage

[英]TELERIK Grid Blazor- Type arguments for parameter cannot be inferred from usage

Type arguments for method TypeInterface.CreateTelerikTreeList_1(RenderTreeBuilder, int, int, IEnumerable, int, RenderFragment) cannot be inferred from use.无法从使用中推断方法 TypeInterface.CreateTelerikTreeList_1(RenderTreeBuilder, int, int, IEnumerable, int, RenderFragment) 的类型 arguments。

This error appears when my api returns this:当我的 api 返回这个时出现这个错误:

{
  "middlewareId": "string",
  "description": "string",
  "protocol": "string",
  "server": "string",
  "port": "string",
  "path": "string",
  "user": "string",
  "active": true
}

The error appears the line of the <TelerikTreeList Data="InfoMiddleware">错误出现在<TelerikTreeList Data="InfoMiddleware">

I do something similar with the Flow to generate a Telerik Grid but for this case the api is sending something like this and in this case it is creating the table without error.我对 Flow 做了一些类似的事情来生成一个 Telerik 网格,但是对于这种情况,api 正在发送类似这样的东西,在这种情况下,它正在创建没有错误的表。

[
  {
    "flowId": "string",
    "middlewareId": "string",
    "Active": true
  }
]
<TelerikTreeList Data="InfoMiddleware">
        <TreeListColumns>
            <TreeListCommandColumn>
                <TreeListCommandButton Icon="edit">Edit</TreeListCommandButton>
            </TreeListCommandColumn>
            <TreeListColumn Field=@nameof(MiddlewareModel.MiddlewareId) Title="Middleware"/>
            <TreeListColumn Field=@nameof(MiddlewareModel.Description) Title="Middleware"/>
            <TreeListColumn Field=@nameof(MiddlewareModel.Protocol) Title="Middleware" />
            <TreeListColumn Field=@nameof(MiddlewareModel.Server) Title="Middleware" />
            <TreeListColumn Field=@nameof(MiddlewareModel.Path) Title="Middleware"/>
            <TreeListColumn Field=@nameof(MiddlewareModel.UserName) Title="Middleware"/>
            <TreeListColumn Field=@nameof(MiddlewareModel.Active) Title="Middleware" />
        </TreeListColumns>
    </TelerikTreeList>
@code {
    [Parameter]
    public string? environmentId { get; set; }
    [Parameter]
    public string? middlewareId { get; set; }

    private MiddlewareModel? InfoMiddleware;
    private FlowModel[]? Flows;

    protected override async Task OnInitializedAsync()
    {
        InfoMiddleware = await HttpClient.GetFromJsonAsync<MiddlewareModel?>($"https://localhost:57031/api/Environments/{environmentId}/Middlewares/{middlewareId}");

        try
        {
            Flows = await HttpClient.GetFromJsonAsync<FlowModel[]?>($"https://localhost:57031/api/Environments/{environmentId}/Middlewares/{middlewareId}/Flows");
        }
        catch (Exception ex)
        {
            Logger.LogWarning(ex, ex.Message);
            Flows = new FlowModel[] {};
        }
    }
}

Usually one would use a model to define individual columns, and a collection of said model to define the Data of the component - eg something that implements IEnumerable.通常人们会使用 model 来定义单独的列,并使用 model 的集合来定义组件的Data ——例如实现 IEnumerable 的东西。

In your case, it seems that you are using the same MiddlewareModel model for both, which should not be the case.在您的情况下,您似乎对两者都使用了相同的MiddlewareModel model ,但事实并非如此。 Try defining a collection of MiddlewareModel and pass this instead to the Data param.尝试定义MiddlewareModel的集合并将其传递给 Data 参数。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM