Зацикливание списка объектов внутри частичного представления, возвращающего нулевые значения в записи - PullRequest
0 голосов
/ 19 марта 2019

У меня есть частичное представление внутри, которое зацикливает мой объект доступности для получения значений из текстового поля.Я добавил свой код здесь.

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(IEnumerable<WebApplication1.Class.Availability> aaa)
        {

            return View();
        }
    }

Здесь количество списков будет отличаться.Может быть больше 10.

Мой основной вид:

@model List<WebApplication1.Class.Availability>
@{
    ViewBag.Title = "Home Page";
}

<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.EditorFor(modelItem => item.Name, new { @class = "Name" })
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Address, new { @class = "Address" })
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Gender, new { @class = "Gender" })
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Adult, new { @class = "Adult" })
                </td>
                <td>
                    @Html.EditorFor(modelItem => item.Child, new { @class = "Child" })
                </td>
            </tr>
        }
    </table>
    <input id="btnSubmit" class="btn btn-default" type="submit" value="Submit">
}

Моя ошибка - Когда я нажимаю на кнопку отправить для публикации данныхв ListOfPost () ActionResult, параметр aaa возвращает нулевое значение.Я сомневаюсь, что причиной проблемы является имя будет сохранено для всего текстового поля.

Как я могу получить введенные пользователем значения в сообщении ???

1 Ответ

0 голосов
/ 19 марта 2019

Вам нужен класс viewmodel, который содержит свойство IEnumerable<Availability> availabilities и возвращает его в виде.

...