asp.net core mvc 提交数据,传入模型到控制器,模型里的一个字段为类集合,在视图页面该如何构建类

Alick Wang 286 信誉分
2024-11-07T07:41:21.52+00:00

模型类结构如下:

public class Nh_ViewModel

{

public string cjid { get; set; }

public List<Detail> data { get; set; } = new List<Detail>();

}

public class Detail

{

public string sbid { get; set; }

public string bz { get; set; }

}

页面视图 如下

<form class="layui-form" method="post" action="Nh_do">

<div>

<input type="hidden" name="sbzid" value="@Model.cjid" />

<table class="layui-table">

<thead>

<tr>

<th style="width:30px;">序号</th>

<th>设备名称</th>

<th>备注</th>

</tr>

</thead>

<tbody id="sbList">

@{

int i = 1;

foreach (Detail item in Model.data)

{

<tr>

<td>@i.ToString()</td>

<td>@Html.DisplayFor(modelItem => item.sbmc)<input type="hidden" name="sbid" value="@item.sbid" /></td>

<td style="text-align:center;"><input class="layui-input" style="width:200px;" name="bz" asp-for="@item.bz" /></td>

</tr>

i++;

}

}

</tbody>

<tfoot>

<tr>

<td colspan="6" style="text-align:right;">

<button type="submit" class="layui-btn layui-btn-primary" id="btnAddsave">保存</button>

</td>

</tr>

</tfoot>

</table>

</div>

</form>

在控制器里:

public IActionResult Nh_do(Nh_ViewModel vm)

{

return Ok(vm);

}

并没有获取data数据,结果如下

{

"cjid": “aaa”,

"data": []

}

请问该怎么解决

ASP.NET Core
ASP.NET Core
.NET Framework 中一套用于生成 Web 应用程序和 XML Web 服务的技术。
32 个问题
{count} 票

接受的答案
  1. JasonPan - MSFT 5,991 信誉分 Microsoft 供应商
    2024-11-07T09:55:56.66+00:00

    Hi @Alick Wang,

    将您的.cshtml中的form表单代码修改如下, 问题可以得到解决。

    用户的图像

    <form class="layui-form" method="post" action="Nh_do">
        <div>
            <input type="hidden" name="cjid" value="@Model.cjid" />
            <table class="layui-table">
                <thead>
                    <tr>
                        <th style="width:30px;">序号</th>
                        <th>设备名称</th>
                        <th>备注</th>
                    </tr>
                </thead>
                <tbody id="sbList">
                    @{
                        int i = 0;
                        foreach (Detail item in Model.data)
                        {
                            <tr>
                                <td>@(i + 1)</td>
                                <td>
                                    @Html.DisplayFor(modelItem => item.sbid)
                                    <input type="hidden" name="data[@i].sbid" value="@item.sbid" />
                                </td>
                                <td style="text-align:center;">
                                    <input class="layui-input" style="width:200px;" name="data[@i].bz" value="@item.bz" />
                                </td>
                            </tr>
                            i++;
                        }
                    }
                </tbody>
                <tfoot>
                    <tr>
                        <td colspan="6" style="text-align:right;">
                            <button type="submit" class="layui-btn layui-btn-primary" id="btnAddsave">保存</button>
                        </td>
                    </tr>
                </tfoot>
            </table>
        </div>
    </form>
    

    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他问题,请点击“评论”。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们的 文档 中的步骤启用电子邮件通知。

    Best Regards

    Jason


0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。