Blazor 将数据绑定到集合?

Ada*_*dam 7 c# asp.net data-binding blazor

我正在尝试以编程方式使用 Blazor 生成表单,但遇到了一个问题,我需要将 InputText 值绑定到集合的成员,例如:

@foreach (var prop in formProperties)
{
    <InputText id=@prop.Name @bind-Value="form.Responses[prop.Name]" />
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下异常:

System.ArgumentException: The provided expression contains a InstanceMethodCallExpression1 which is not supported. FieldIdentifier only supports simple member accessors (fields, properties) of an object.
Run Code Online (Sandbox Code Playgroud)

是否可以将输入绑定到某种类型的集合?

Sip*_*tra 11

遇到类似的问题,我试图根据属性字典构建一个表,我看到了史蒂夫的回复。

基本上你能做的就是引入一种新类型,称为例如

public class FormResponse
{
    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

FormResponse假设您现在在对象上创建一个字典form,则可以执行以下操作:

@foreach (var prop in formProperties)
{
    <InputText id="@prop.Name" @bind-Value="form.Responses[prop.Name].Value" />
}
Run Code Online (Sandbox Code Playgroud)

这可以说比使用链式绑定创建新组件更简单。