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

ASP.NET Core 2.0:如何无需新增输入,将表单外数据传至控制器

解决办法:使用隐藏表单字段提交额外模型值

嘿,这个需求很容易实现!你只需要在表单中添加隐藏输入字段,就能把MinUppercase和MinLowercase这两个模型值和其他表单数据一起提交,而且不会在页面上显示额外的输入控件。

隐藏字段的作用就是在页面不可见,但表单提交时会自动携带它的值,正好符合你的需求。具体做法是在你的<form>标签内部添加两个type="hidden"的输入框,用asp-for绑定对应的模型属性:

<form asp-action="Middle" asp-controller="Home" method="POST" class="form-wrapper">
    <!-- 添加这两个隐藏字段,位置可以放在表单内任意不影响布局的地方 -->
    <input asp-for="MinUppercase" type="hidden" />
    <input asp-for="MinLowercase" type="hidden" />

    <!-- 原有的表单内容保持不变 -->
    <div class="input-group">
        <label>Login:</label>
        <input id="Login" asp-for="Login" type="text" class="input" size="35">
    </div>
    <div class="input-group">
        <label>Password:</label>
        <input id="Password" asp-for="Password" type="Password" class="input" size="35">
    </div>
    <div class="input-group">
        <label>Your Regex Description:</label>
        <input id="Description" asp-for="Description" type="text" class="input" size="35" value=@Model.Description>
    </div>
    <div class="input-group">
        <label>Your Regex:</label>
        <input id="Reg" asp-for="Reg" type="text" class="input" size="35" value=@Model.Reg>
    </div>
    <div class="input-group">
        <a asp-controller="Home" asp-action="CreateRegex">
            <button type="button" class="btn btn-danger">Back</button>
        </a>
        <button class="btn btn-success">Create</button>
    </div>
</form>

为什么这样可行?

  • ASP.NET Core的模型绑定系统会自动识别表单中带有正确name属性的字段(asp-for会帮你自动生成和模型属性匹配的name和value)。
  • 隐藏字段的值会从当前的@Model中自动填充,提交表单时就会和Login、Password等字段一起发送到Home/Middle方法。
  • 只要你的UserModel中MinUppercase和MinLowercase属性有公开的getter和setter,模型绑定就能顺利把这两个值绑定到方法的参数实例里。

这样既不用新增可见的输入控件,又能把这两个变量的数据一起提交啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:56:17