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

非Ajax方式下HTML数组输入传参至控制器及代码正确性验证

问题解答

结论:你给出的控制器方法参数写法不完全正确,存在两处问题:

  • 冗余参数不匹配:你的HTML代码里没有名为ingredientUnit[]的输入控件,但控制器里却声明了string[] ingredientUnit。表单提交时这个参数会被绑定为null,虽不报错,但属于多余参数,要么移除它,要么补充对应的HTML输入框。
  • 类型匹配需注意:ingredientQty[]是数字输入框,用int[] ingredientQty绑定是合理的,但如果用户输入小数,模型绑定会失败,要在前端或后端加验证逻辑。

另外,正确的部分是:ingredientName[]对应string[] ingredientName、ingredientQty[]对应int[] ingredientQty的写法是没问题的,ASP.NET MVC的模型绑定会自动把表单里的数组字段绑定到控制器的数组参数上,普通POST提交(非Ajax)完全支持这种方式。

如果不需要ingredientUnit,修正后的控制器方法参数应该是:

public ActionResult UploadRecipe(Recipe recipe, string ingcount, string moodid, string[] ingredientName, int[] ingredientQty) {
    // 业务逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:57:12