Циклический список объектов внутри частичного представления возвращающий нулевые значения в post
У меня есть частичное представление, внутри которого зацикливается мой объект доступности для получения значений из текстового поля. Я добавил сюда свой код.
Мой класс моделей:
public class Availability { public int ID { get; set; } public string Name{ get; set; } public string Address { get; set; } public string Gender { get; set; } public int Adult { get; set; } public int Child { get; set; } }
Мой контроллер:
public class HomeController : Controller { List<Availability> lst = new List<Availability>(); public ActionResult Index() { Availability aa = new Availability(); Availability a1 = new Availability(); Availability a2 = new Availability(); Availability a3 = new Availability(); lst.Add(aa); lst.Add(a1); lst.Add(a2); lst.Add(a3); return View(lst); } public ActionResult ListOfPost(List<WebApplication1.Class.Availability> aaa) { return View(); } }
Мой основной вид:
@model IEnumerable<WebApplication1.Class.Availability> @{ ViewBag.Title = "Home Page"; } My partail view: <script type="text/javascript" src="http://code.jquery.com/jquery-3.3.1.js"></script> Index page @Html.Partial("_Availability", Model)
@model IEnumerable<WebApplication1.Class.Availability> <p> @Html.ActionLink("Create New", "Create") </p> @using (Html.BeginForm("ListOfPost", "Home", FormMethod.Post)) { <table class="table"> <tr> <th> @Html.DisplayNameFor(model => model.Name) </th> <th> @Html.DisplayNameFor(model => model.Address) </th> <th> @Html.DisplayNameFor(model => model.Gender) </th> <th> @Html.DisplayNameFor(model => model.Adult) </th> <th> @Html.DisplayNameFor(model => model.Child) </th> </tr> @foreach (var item in Model) { <tr> <td> @Html.TextBoxFor(modelItem => item.Name, new { @class = "Name" }) </td> <td> @Html.TextBoxFor(modelItem => item.Address, new { @class = "Address" }) </td> <td> @Html.TextBoxFor(modelItem => item.Gender, new { @class = "Gender" }) </td> <td> @Html.TextBoxFor(modelItem => item.Adult, new { @class = "Adult" }) </td> <td> @Html.TextBoxFor(modelItem => item.Child, new { @class = "Child" }) </td> </tr> } </table> <input id="btnSubmit" class="btn btn-default" type="submit" value="Submit"> }
Моя ошибка заключается в том, что когда я нажимаю кнопку submit to post data to ListOfPost() ActionResult, параметр aaa возвращает нулевое значение. Я сомневаюсь, что причиной проблемы является имя, которое будет сохранено для всего текстового поля.
Как я могу получить введенные пользователем значения в post???
Что я уже пробовал:
Чтобы отличить имя, я использовал приведенный ниже код.
@{int i = 0; } @foreach (var item in Model) { <tr> <td> @Html.TextBoxFor(modelItem => item.Name, new { Name = item.Name + i, id = item.Name + i }) </td> <td> @Html.TextBoxFor(modelItem => item.Address, new { Name = item.Address + i, id = item.Address + i }) </td> <td> @Html.TextBoxFor(modelItem => item.Gender, new { Name = item.Gender + i, id = item.Gender + i }) </td> <td> @Html.TextBoxFor(modelItem => item.Adult, new { Name = item.Adult + i, id = item.Adult + i }) </td> <td> @Html.TextBoxFor(modelItem => item.Child, new { Name = item.Child + i, id = item.Child + i }) </td> </tr> @{ i += 1; }*@