如何将特定行中的两个值传递给Controller asp.net core mvc?

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

我的目标是,当我单击绿色复选标记时,它将字段从1更新为0,这将返回并使绿色复选标记变为红色x。这是我桌子的图片,仅供参考。

[我的Alerts.cshtml代码:

 @for (int i = 0; i < Model.Count; i++)
                                    {

                                        <tr>
                                            <td>
                                                @Model[i].AppName
                                            </td>
                                            <td>
                                                @Model[i].MonAlertsID
                                            </td>
                                            <td>
                                                @Model[i].AlertType
                                            </td>


                                            <td>
                                                @Model[i].DisplayName
                                            </td>
                                            <td>

                                                <form class="form-inline ml-auto" asp-action="Alerts2" method="POST">
                                                    @if(@Model[i].Active == "1")
                                                    {

                                                    <button type="submit" name="changetoinactive"  asp-action="Alerts2" formmethod="POST" class="btn btn-success btn-raised btn-fab btn-fab-mini btn-round">

                                                        <i class="material-icons">done</i>
                                                    </button>
                                                    }
                                                    @if (@Model[i].Active == "0")
                                                    {
                                                        <button type="submit" name="notactive" id="notactive" class="btn btn-danger btn-raised btn-fab btn-fab-mini btn-round">
                                                            <i class="material-icons">clear</i>
                                                        </button>
                                                    }
                                                </form>
                                            </td>
                                        </tr>


                                    }

我的控制器:

public string Alerts2()
{         
}

如何从cshtml页面上的表单获取AppName和MonAlertsID的值到控制器?

asp.net asp.net-core model-view-controller
1个回答
0
投票

您可以使用hidden输入类型将AppNameMonAlertsID发布到控制器。动作参数的名称应与隐藏输入的名称匹配。

Alerts.cshml:

<td>
    <form class="form-inline ml-auto" asp-action="Alerts2" method="POST">
        <input type="hidden" name="appName" value="@Model[i].AppName" />
        <input type="hidden" name="monAlertsID" value="@Model[i].MonAlertsID" />
        @if (@Model[i].Active == "1")
        {

            <button type="submit" name="changetoinactive" class="btn btn-success btn-raised btn-fab btn-fab-mini btn-round">

                <i class="material-icons">done</i>
            </button>
        }
        @if (@Model[i].Active == "0")
        {
            <button type="submit" name="notactive" id="notactive" class="btn btn-danger btn-raised btn-fab btn-fab-mini btn-round">
                <i class="material-icons">clear</i>
            </button>
        }
    </form>

</td>

动作

[HttpPost]
public IActionResult Alerts2(string appName, int monAlertsID)
{
    //save changes to database
    //...
    return RedirectToAction("Alerts");
}
© www.soinside.com 2019 - 2024. All rights reserved.