You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将View中的Model值传递到Controller?详解ID传递至AAA方法

如何将View数据传递到Controller(重点传递ID到AAA方法)

针对你的场景,我来一步步说明怎么调整代码,让ID能正确传递到Controller的AAA方法里。

问题分析

你当前的视图代码里,每个表单只有一个提交按钮,没有携带ABCDE模型的任何数据(比如ID),所以Controller的AAA方法接收的model对象里,ID会是默认值0,无法拿到对应项的真实ID。

解决方案1:传递完整模型(推荐需要整个模型数据时用)

在表单内部添加隐藏字段,把ID(以及你需要的其他模型属性)传递给Controller。修改后的视图代码如下:

@model IList<Jednoslad.Models.ABCDE>
@{
    ViewBag.Title = "title";
    Layout = "~/Views/Layout/_Layout.cshtml";
}

@foreach (var m in Model)
{
    using (Html.BeginForm("AAA", "BBB"))
    {
        <!-- 添加隐藏字段传递ID -->
        @Html.HiddenFor(x => m.ID)
        <!-- 如果需要其他属性,也可以添加对应的隐藏字段 -->
        @Html.HiddenFor(x => m.Name)
        @Html.HiddenFor(x => m.Surname)

        <div class="moto">
            <h1>@m.ID</h1>
            <h2>@m.Name</h2>
            <input type="submit" name="model" value="AAA"/>
        </div>
    }
}

你的Controller代码可以保持不变,提交后model.ID就能拿到对应项的真实值了:

[HttpPost]
public ActionResult AAA(ABCDE model)
{
    // 这里model.ID就是你点击的项的ID
    return View();
}

解决方案2:只传递ID(更轻量,仅需要ID时用)

如果你只需要传递ID,不需要整个模型,可以直接修改Controller的方法参数为int id,然后在表单里通过隐藏字段或者路由参数传递ID:

修改Controller:

[HttpPost]
public ActionResult AAA(int id)
{
    // 这里直接拿到ID
    return View();
}

修改视图(两种方式):

方式A:用隐藏字段传递ID

@foreach (var m in Model)
{
    using (Html.BeginForm("AAA", "BBB"))
    {
        @Html.Hidden("id", m.ID) <!-- 注意name要和Controller参数名一致 -->
        <div class="moto">
            <h1>@m.ID</h1>
            <h2>@m.Name</h2>
            <input type="submit" value="AAA"/>
        </div>
    }
}

方式B:通过表单路由参数传递

@foreach (var m in Model)
{
    // 把ID放到路由参数里
    using (Html.BeginForm("AAA", "BBB", new { id = m.ID }, FormMethod.Post))
    {
        <div class="moto">
            <h1>@m.ID</h1>
            <h2>@m.Name</h2>
            <input type="submit" value="AAA"/>
        </div>
    }
}

这样提交后,Controller的id参数就能直接拿到对应项的ID了。

额外提示

你模型里的Surname字段是int类型,这看起来有点奇怪(姓氏一般是字符串),如果是笔误的话记得改成string类型哦~

内容的提问来源于stack exchange,提问作者Piateczka18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:43:02