我在 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/