MVC核心弹出模式参数

问题描述 投票:0回答:2

我有一种情况,我应该基于否创建多个按钮。数据库上的项目数。

并且当单击按钮时,将出现一个带有提交按钮的弹出模式。

当我提交时,所选的参数不会传递到我的后期控制器Activate(代码)

有人可以帮忙吗?

我有这个模特:

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="#[email protected]">
            @item.CodeName
        </button>

    }


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

            <div class="modal fade" id="[email protected]" 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>
c# razor asp.net-core-mvc
2个回答
0
投票

见下文:我已经添加了隐藏字段

@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="#[email protected]">
            @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="[email protected]" 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
投票

您可以直接添加名称为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="[email protected]" 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>
}
© www.soinside.com 2019 - 2024. All rights reserved.