У меня есть сценарий, где я должен создать количество кнопок на основе нет. элементов на БД.

И когда кнопка нажата, должна появиться всплывающая модальная кнопка с кнопкой отправки.

Когда я отправляю, выбранные параметры не передаются в мой почтовый контроллер. Активировать (Код кода)

Кто-нибудь может помочь?

У меня есть эта модель:

public class Code
{
     public int CodeId { get; set; }
     public string CodeName { get; set; }
     public string CodeColor { get; set; }
     public int PagerNo { get; set; }
}

И это мой контроллер:

        public IActionResult Index()
        {
            return View(_code.Entity.GetAll());
        }
        [HttpPost]
        public IActionResult Activate(Code code)
        {
            int codeId = code.CodeId;
            return RedirectToAction("Index");
        }

И мой взгляд:

@model IEnumerable<CoreLibrary.Entities.Code>
@{
    ViewData["Title"] = "Index";
}

<h1>Index</h1>
<div class="container">
    @foreach (var item in Model)
    {
        <button class="btn btn-success btn-lg" data-toggle="modal" data-target="#item-@item.CodeId">
            @item.CodeName
        </button>

    }


    @foreach (var item in Model)
    {
        <form asp-action="Activate" asp-controller="Activation" method="post">

            <div class="modal fade" id="item-@item.CodeId" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true">
                <div class="modal-dialog modal-dialog-centered" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title" id="ModalLongTitle">Are you sure?</h5>
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body">
                            @item.CodeName will be activated !
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                            <input type="submit" class="btn btn-primary form-control" value="Submit" />
                        </div>
                    </div>
                </div>
            </div>
        </form>
    }
</div>
0
Saad Aldulaijan 26 Апр 2020 в 13:10

2 ответа

Лучший ответ

Вы можете напрямую добавить скрытое поле с именем CodeId, которое будет привязано к объекту Code во время привязки модели:

@foreach (var item in Model)
{
    <form asp-action="Activate" asp-controller="home" method="post">
        <input name="CodeId" type="hidden" value="@item.CodeId">  <-- pass CodeId
        <div class="modal fade" id="item-@item.CodeId" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="ModalLongTitle">Are you sure?</h5>
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
                    <div class="modal-body">
                        @item.CodeName will be activated !
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                        <input type="submit" class="btn btn-primary form-control" value="Submit" />
                    </div>
                </div>
            </div>
        </div>
    </form>
}
0
Nan Yu 27 Апр 2020 в 02:45

Смотрите ниже: я добавил скрытые поля

@model IEnumerable<CoreLibrary.Entities.Code>
@{
    ViewData["Title"] = "Index";
}

<h1>Index</h1>
<div class="container">
    @foreach (var item in Model)
    {
        <button class="btn btn-success btn-lg" data-toggle="modal" data-target="#item-@item.CodeId">
            @item.CodeName
        </button>

    }


    @foreach (var item in Model)
    {
        <form asp-action="Activate" asp-controller="Activation" method="post">

            @Html.HiddenFor(m => item.CodeId)
            @Html.HiddenFor(m => m.CodeName)
            @Html.HiddenFor(m => m.CodeColor)
            @Html.HiddenFor(m => m.PagerNo)
            <div class="modal fade" id="item-@item.CodeId" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true">
                <div class="modal-dialog modal-dialog-centered" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title" id="ModalLongTitle">Are you sure?</h5>
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body">
                            @item.CodeName will be activated !
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                            <input type="submit" class="btn btn-primary form-control" value="Submit" />
                        </div>
                    </div>
                </div>
            </div>
        </form>
    }
</div>
0
shobhit vaish 26 Апр 2020 в 11:12