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

ASP.NET MVC Core表单提交至Test类参数为空:表单需修改何处?

表单值无法绑定到Test类的解决办法

你遇到的问题是因为ASP.NET Core的模型绑定规则和当前表单字段的命名不匹配导致的,只需要修改表单里输入框的name属性就能解决,具体修改如下:

修改后的表单代码

<form method="post" id="modalForm" action="/Test/TestForm" target="myframe"> 
    <input type="text" name="test.id" required /> 
    <input type="text" name="test.name" required /> 
    <input type="submit" value="Post" /> 
</form>

为什么这样改?

ASP.NET Core默认的模型绑定器会按照「参数名 + 类成员名」的层级关系来匹配表单数据。你的后端接收参数是Test test,所以表单输入框的name必须改成test.id和test.name,这样绑定器才能准确把用户输入的值映射到test对象的id、name字段上。

另外提个小细节:你原来把onsubmit事件写在了<input type="submit">标签上,这是错误的写法——onsubmit事件应该绑定在<form>标签上才会触发,我已经帮你调整掉了这个问题。

额外的优化建议(如果允许修改后端)

虽然你要求只修改表单,但如果能调整后端的Test类,把公共字段改成公共属性的话,表单的name就可以保持原来的id和name,代码会更简洁规范:

public class Test { 
    public string Id { get; set; }
    public string Name { get; set; }
}

这是因为ASP.NET Core的模型绑定优先支持公共属性,这种写法也更符合.NET的编码规范,后续维护起来也更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:47:38