javascript - 如何在 asp.net mvc 中重复表单控件并将它们作为列表传递给 Controller

标签 javascript c# jquery .net asp.net-mvc

我在 View 表单中有 3 个控件(一个文本框、一个数字框和一个日期),这 3 个控件构成了模型对象。向用户提供了链接,单击此链接后,所有 3 个控件在表单内重复了 5 次。

我有一个模型类列表作为 Controller 操作方法中的参数类型。如何将表单内容克隆 5 次以使其正确序列化为 List?

最佳答案

更简单的方法。

型号:

public class MyModel
{
    public IList<OneSetOfElements> FormSet { get; set; }
}

public class OneSetOfElements
{
    public string Name { get; set; }
    public int Age { get; set; }

    [DataType(DataType.Date)]
    public DateTime Dob { get; set; }
}

行动:

public ActionResult MyAction(MyModel model)
{
    foreach (var set in model.FormSet)
    {
        //read your data.
    }
}

View :点击时显示 id“showMeOnUrlClick”

    @using (Html.BeginForm())
    {

//This would bind as first list element
        <div id="firstSet"> 
            @Html.EditorFor(m => m.FormSet[1].Name)
            @Html.EditorFor(m => m.FormSet[1].Age)
            @Html.EditorFor(m => m.FormSet[1].Dob, new { type = "date" })

        </div>

//Remaining list element
        <div id="showMeOnUrlClick" style="display: none"> 
            @for (int i = 1; i <= 6; i++)
            {
                @Html.EditorFor(m => m.FormSet[i].Name)
                @Html.EditorFor(m => m.FormSet[i].Age)
                @Html.EditorFor(m => m.FormSet[i].Dob, new {type = "date"})
            }
        </div>

        <button onclick="showTheRepeatedFields() ">Show</button>
    }

关于javascript - 如何在 asp.net mvc 中重复表单控件并将它们作为列表传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230199/

相关文章:

javascript - 使用 Sequelize 获取 "TypeError: Cannot read property ' findAll' of undefined"

javascript - 如何使用 jQuery 在点击时复制 div?

javascript - 提交表单或模拟按下 Enter/Return

jquery - 为什么 jQuery 不自动将所有函数设为 "live"?

java - 包含 Applet 的窗口

javascript - jQuery 虚拟键盘正在保存先前输入的值

c# - Silverlight 动态资源文件位置

c# - 如何将点数组转换为矩形

c# - 调用 Timer ElapsedEventHandler 的正确方法是什么

javascript - 使用 Javascript/jQuery 读取 JSON