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

MVC开发中LINQ查询如何引用当前表单的ThisFormID值

解决方法

你需要同时修改控制器方法和视图代码,两步即可实现需求:

第一步:修改控制器的Approve方法,添加参数接收ID

给Approve方法加一个int类型的ThisFormID参数,ASP.NET Core会自动把表单提交的对应字段值绑定到这个参数上,同时建议加空引用判断避免空异常:

public IActionResult Approve(int ThisFormID)
{
    ThisForm update = (from p in _context.ThisForm where p.ThisFormID == ThisFormID select p).SingleOrDefault();
    // 空判断防止找不到记录时触发空引用异常
    if (update == null)
    {
        return NotFound();
    }
    // 注意:字符串要用双引号包裹,单引号是char类型的写法,原写法会报错
    update.ApprovalStatus = "Approved";
    _context.SaveChanges();       
 
    return RedirectToAction("Index");
}

第二步:修改视图表单,添加隐藏域传递当前记录的ThisFormID

在表单内部新增一个隐藏的input控件,值绑定当前视图模型的ThisFormID即可:

<form asp-action="Approve">
    <!-- 新增隐藏域传递当前表单ID,只要name属性和控制器参数名一致就能自动绑定 -->
    <input type="hidden" asp-for="ThisFormID" />
    <input type="submit" value="Approve" class="btn btn-outline-success" />
</form>

补充说明:如果你的视图没有强绑定模型,也可以把隐藏域写成 <input type="hidden" name="ThisFormID" value="@你的当前ID变量" />,效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:15:04