【发布时间】:2020-01-02 22:12:50
【问题描述】:
我正在使用 Blazor,我想创建一个动态生成的表单,它是网格的一部分。
数据的实体类型被传递到网格,这是表单的基础。我现在面临的问题是@bind-Value,它是编辑给定实体所必需的。
我使用BlazorStrap,它是一个 Blazor 服务器端项目。
我在剃须刀文件中有以下代码:
@{
string bind = $"{nameof(_editedItem)}.{propertyInfo.Name}";
}
<BSBasicInput InputType="InputType.Text"
id="@propertyInfo.Name"
@bind-Value="@bind"/>
有问题的部分是最后一行。始终显示 _variableName.PropertyName 而不是从对象中提取值。
正确的代码应该是这样的:
<BSBasicInput InputType="InputType.Text"
id="@propertyInfo.Name"
@bind-Value="_variableName.PropertyName"/>
到目前为止我尝试了什么:
- 多种风格的语法,但是,由于我对 Razor 语法并没有真正的经验,所以在我碰壁之后
- 调试显示我想编辑的变量得到了它的值,所以问题出在某处生成的
@bind-Value值 - 我还检查了生成的代码(.g 文件),但我没有发现那里有异味(请在下面找到)
- 我还没有创建没有动态生成表单的 POC,因为创建类似复杂性的东西需要几个小时。
这里有什么解决办法?
#nullable restore
#line 24 "/../..ModalEdit.razor"
bind
#line default
#line hidden
#nullable disable
, 31, Microsoft.AspNetCore.Components.EventCallback.Factory.Create(this, Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.CreateInferredEventCallback(this,
__value => bind = __value, bind)));
__builder4.AddMarkupContent(32, "\n");
【问题讨论】:
标签: c# razor blazor-server-side