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

Umbraco 10中Post提交表单时获取模型数据失败求助

问题排查与解决方案

1. 修正Action方法名错误

你的控制器Action方法名和表单指定的asp-action不匹配:

  • 表单中asp-action="Save",但控制器方法名写的是ChangeInfoController,这会导致路由无法匹配,模型自然无法绑定。
  • 正确的Action方法名应该是Save:
[HttpPost]
public IActionResult Save(ContentModel model)
{
    // 现在尝试访问model.Form
}

2. 确保表单字段name属性与模型层级匹配

Umbraco生成的FormInput类型作为ContentModel的Form属性,表单中的输入字段需要正确设置name属性,对应模型的层级结构:
比如FormInput有UserName、Email属性,那么表单输入框应该这样写:

<input type="text" name="Form.UserName" />
<input type="email" name="Form.Email" />

只有name属性和模型的属性路径完全一致,模型绑定才能将表单值映射到model.Form中。

3. 显式指定模型绑定来源(可选)

如果上述步骤仍未解决问题,可以尝试给模型参数添加[FromForm]特性,强制从表单数据中绑定:

[HttpPost]
public IActionResult Save([FromForm] ContentModel model)
{
    // 检查model.Form是否有值
}

4. 直接绑定FormInput模型(备选方案)

如果ContentModel中只有Form属性是表单提交的内容,可以直接将Action参数改为FormInput类型,简化绑定:

[HttpPost]
public IActionResult Save(FormInput model)
{
    // 直接使用model即可,无需通过ContentModel.Form
}

同时对应的表单字段name属性去掉Form.前缀,比如name="UserName"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:27:03