[英]Error when passing list of objects from Controller to View using Html.BeginForm() ASP.NET MVC
I want to get multiple instances of my model objects sent to the controller as a list but for some reason, my code gives the error:System.ArgumentNullException: 'Value cannot be null.我想将模型对象的多个实例作为列表发送到控制器,但由于某种原因,我的代码给出了错误:System.ArgumentNullException:'Value cannot be null。
This is my View:这是我的观点:
@model List<MVCModel.Models.Student> <b>Items</b> @ViewBag.Items <br /> <b>Value</b> @ViewBag.Value <br /> @using (Html.BeginForm("Form", "Home", FormMethod.Post)) { <table> <tbody id="GenaratorList"> <tr> @{ for (int c = 0; c < Model.Count(); c++) { <td>Enter Name: </td> <td>@Html.TextBoxFor(m => m[c].Name, new {id = "Name"})</td> <td>Enter Age: </td> <td>@Html.TextBoxFor(m => m[c].Age, new {id = "Age"})</td> <td><input type="button" value="Add" onclick="addGenarator()" /></td> } } </tr> <tbody> </table> <input type="submit" value="Submit Form"/> } <script> count = 0; function addGenarator() { var Name = $('#Name').val(); var Age = $('#Age').val(); var Student = "studentModels[" + count + "]"; $('#GenaratorList').append('<tr><td><input id="' + Student + '.Name" Name="' + Student + '.Name" type="text" class="form-control" readonly value="' + Name + '"></td><td><input id="' + Student + '.Age" Age="' + Student + '.Age" type="text" class="form-control" readonly value="' + Age + '"></td></tr>'); $('#Name,#Age').val(''); count++; } </script>
This is my Controller:这是我的控制器:
[HttpPost] public ActionResult Form(List<Student> s) { ViewBag.Items = s.Count; ViewBad.Value = s[0].Age return View("Index"); }
This is my model:这是我的模型:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVCModel.Models { public class Student { public string Name { get; set; } public int Age { get; set; } } }
<script>
count = 0;
function addGenarator() {
var Name = $('#Name').val();
var Age = $('#Age').val();
var Student = "s[" + count + "]";
var html = `
<tr>
<td><input id="${Student}.Name" name="${Student}.Name" type="text" class="form-control" readonly value="${Name}" /></td>
<td><input id="${Student}.Age" name="${Student}.Age" type="text" class="form-control" readonly value="${Age}" /></td>
</tr>
`;
$('#GenaratorList').append(html);
$('#Name,#Age').val('');
count++;
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.