ASP.NET 具有动态字段的 MVC 表单

本文关键字:MVC 表单 字段 动态 NET ASP | 更新日期: 2023-09-27 18:36:26

>问题

我想显示一个具有可变值量的表单。但是,每个表单项都必须具有与之关联的某种键。例如,表单生成名称、用户名和职业字段,我还需要生成密钥,以便在提交表单时,receiver 方法可以判断哪些项目是什么。

尝试的解决方案

现在我有一个字段项列表,其中字段项只是一个类,其中包含一个字符串的类变量。该解决方案在填充表单时有效,但是在提交时返回一个列表,我无法分辨哪个值属于哪个键。我正在考虑使用字典,但我不知道如何在剃须刀中完成此操作。

查看模型

public class BuildReportViewModel
{
    public IList<BuildReportFieldItemViewModel> Fields { get; set; }
}
public class BuildReportFieldItemViewModel
{
    public string Field { get; set; }
}

用于生成报表字段项视图模型的编辑器

@model BuildReportFieldItemViewModel
<div class="editor-label">
    <label for="@Model.Field">@Model.Field</label>
</div>
<div class="editor-field">
    <input type="text" name="@Model.Field">
</div>

ASP.NET 具有动态字段的 MVC 表单

尝试使用隐藏键字段

查看模型

public class BuildReportViewModel
{
    public IList<BuildReportFieldItemViewModel> Fields { get; set; }
}
public class BuildReportFieldItemViewModel
{
    public string Field;
    public string Key;
}

用于生成报表字段项视图模型的编辑器

@model BuildReportFieldItemViewModel
<div class="editor-label">
    <label for="@Model.Field">@Model.Field</label>
</div>
<div class="editor-field">
    @Html.TextBoxFor(x => x.Field)
    @Html.Hidden(Model.Key, "key_value");
</div>