Задать вопрос
LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

Почему с view на контроллер не идет модель?

Всем привет!
asp mvc 6.
Вроде все правильно, но почему то при сабмите на контроллер приходит null.

//открываю представление с списком моделей

 public ActionResult Banners()
        {
            List<BusinessLayer.Events.Banners> BannersMdl = new List<BusinessLayer.Events.Banners>();

BannersMdl = BusinesLogic.GetBanners();          

            return View(BannersMdl);
        }


на представление идет список моделей, все заполняется:
@model IEnumerable<BusinessLayer.Events.Banners>


        @using (Html.BeginForm("Banners", "AD", FormMethod.Post))              
                {


                    <fieldset>

                       @foreach (var Ad in Model)
                       {
                           switch (Ad.TypeBanner)
                           {

                               case 1:
                                <h4>Большой главный AD1</h4>
                                   break;

                               case 2:
                                <h4>Событие сайдбар ПК AD2</h4>
                                   break;

                               case 3:
                                <h4>Событие сайдбар мобильный AD3</h4>
                                   break;

                               case 4:
                                <h4>Событие шапка ПК AD4</h4>
                                   break;

                               case 5:
                                <h4>Событие шапка мобильный AD5</h4>
                                   break;

                           }

                      


                        @Html.TextAreaFor(m => Ad.Html, new { @class = "Width500", @style = "height:130px;" })<br><br>

                       }

                     
                      
                       
                         


                        <center> <div style="font-size:large;" id="msg">  </div></center>
                        <p>
                            <input type="submit" id="getCoordsButton" style="float:left" value="Сохранить" />


                            <span id="sendingProgress" style="display: none;">
                                Сохранение...
                                <img src='@Href("~/Images/TEMPLATE/ANIMATIONS/load0.GIF")' />
                            </span>
                        </p>

                    </fieldset>


                            }


принимаю представление с новыми данными при сабмите
[HttpPost]
        [HttpPost]     
        public ActionResult Banners(List<BusinessLayer.Events.Banners> BannersMdl)
        {
.....


и тут BannersMdl = null.
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Скорее всего имена HTML-элементов получаются неправильные (одинаковые). Попробуйте через обычный for, тогда на выходе должны будут получаться имена с указанием индекса (типа: [0].Html, [1].Html и т.п.):
@for (int i = 0, count = Model.Count; i < count; ++i)
{
  @Html.TextAreaFor(m => m[i].Html, new { @class = "Width500", @style = "height:130px;" })
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы