blazor - 表单列表如何使用 Blazor 执行此操作?
问题描述
我有一个需要更新的对象列表,
@foreach (var s in fooList)
{
<EditForm Model="@s" OnValidSubmit="@HandleValidSubmit">
<tr>
<td><InputText id="Name" @bind-Value="@s.Name" /></td>
<td><InputText id="Description" @bind-value="s.Description" /></td>
<td></td>
<td>
<button type="submit">Submit</button>
</td>
</tr>
</EditForm>
}
这是剃须刀。
private async Task HandleValidSubmit()
{
await Service.UpdateService(s);
}
我遇到的问题是我得到'名称's 在当前上下文中不存在'所以,我如何在 foo 列表中传递更新的 s?
解决方案
您需要从通用类型派生,否则 .NET 无法正确进行反射。
注意@bind-Value 与大写 V。
代码可能是这样的
@page "/"
@if (fooList != null)
{
@foreach (Common s in fooList)
{
<EditForm Model="s" OnValidSubmit="()=>HandleValidSubmit(s)">
<tr>
<td><InputText id="Name" @bind-Value="s.Name" /></td>
<td><InputText id="Description" @bind-Value="s.Description" /></td>
<td></td>
<td>
<button type="submit">Submit</button>
</td>
</tr>
</EditForm>
}
}
@code
{
public class Common
{
public string Name;
public string Description;
}
public class Edit1 : Common
{
public string object1;
}
public class Edit2 : Common
{
public string object2;
}
List<Common> fooList = new List<Common>() { new Edit1() { Name = "t1" }, new Edit2() { Name = "t2" } };
private Task HandleValidSubmit(Common result)
{
// Do something with result value
return Task.CompletedTask;
}
}
推荐阅读
- android-studio - 类型 State<> 没有方法 [Android Studio 错误] Jetpack Compose
- css - 我不明白“高度:100vh”超过“最小高度:100vh”
- r - 图例显示不正确,以及运行“geom_signif”代码时“警告:“stat_signif()”中的计算失败:”
- asp.net-core - 502 Bad Gateway 在 Ubuntu 20.04 上的 NGINX 上运行 ASP .NET Core 5 站点
- c# - 无法创建和填充列表类型 System.Collections.ICollection
- java - 在 Azure DevOps 中设置 Azure Artifacts 的正确方法是什么?
- xml - 如何使用 Powershell 枚举 XML 元素的属性
- javascript - Javascript 与 Haskell 中的 Eratosthenes 筛选
- reactjs - “CognitoUser”类型上不存在属性“resetPassword”
- amazon-web-services - AWS ACM 证书未验证