C#.net核心:具有相同ID的隐藏输入的多种ajax形式

时间:2020-03-11 11:21:45

标签: c# ajax asp.net-mvc dom

我有一个带有多个单独选项卡的网页,所有选项卡都存在于DOM中,它们之间的切换完全是客户端。每个选项卡均包含一个ajax表单,用于编辑所选应用程序用户的数据。例如。第一个标签可让您编辑姓名,姓氏...,第二个标签可让您编辑地址。每个选项卡都有一个保存按钮,并且每次仅将当前选项卡的属性传播到数据库。一切正常:)

但是,当然,每个选项卡都需要所涉及的用户(user.Id)的PK。它通过一个隐藏字段传递给控制器 <input type="hidden" asp-for="Id" />,因此 HTML DOM包含多个具有相同ID的元素,浏览器会抱怨

我知道我可以手动设置这些输入字段的名称/ id,并在控制器端手动映射它们,但是模型绑定程序可以为我做到这一点,它非常干净。

public async Task<IActionResult> EditGeneralData([Bind(GeneralDataBindFieldNames)]AppUser appUser)

有没有一种简便的方法来实现这一目标?我是否应该简单地忘记浏览器警告,因为//如果使用getElementById时会小心?您对此有何看法?

1 个答案:

答案 0 :(得分:1)

是的...并不是我一直在寻找的答案,但这足够了。事实证明,这些选项卡的内容是相互关联的。因此,所有选项卡不能同时存在于DOM中,并且它们之间的切换不能完全是客户端。

现在,单击选项卡可以按需加载选项卡内容,因此DOM中不再有多个输入字段。一次仅一个选项卡意味着一次仅一个输入字段:)