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

Asp.net.Mvc表单提交遇模型类型不匹配错误,如何解决?

问题解决:Asp.Net MVC表单提交模型类型不匹配错误

错误信息

InvalidOperationException:传入ViewDataDictionary的模型项类型为'FormValidation.Models.Entity.Personel',但该ViewDataDictionary实例需要类型为'System.Collections.Generic.IEnumerable`1[FormValidation.Models.Entity.Personel]'的模型项。

问题原因

Post视图声明的模型是IEnumerable(人员集合),但控制器的Post方法返回视图时传入的是单个Personel对象,两者类型不兼容,导致框架抛出类型不匹配异常。

解决方案

方案1:修改控制器,传递人员集合给Post视图

如果业务逻辑需要在Post视图展示集合数据,修改控制器的Post方法,将单个Personel对象包装成集合:

[HttpPost]
public IActionResult Post(Personel personel)
{
    // 可先执行数据存储等业务操作
    var personelList = new List<Personel> { personel };
    return View(personelList);
}

方案2:修改Post视图,接受单个Personel模型

如果Post视图仅需展示当前提交的单个人员数据,直接修改视图的模型声明:

@model FormValidation.Models.Entity.Personel

<p>@Model.Name</p>
<p>@Model.Surname</p>
<p>@Model.Age</p>
<p>@Model.City</p>

补充说明

原Index视图的模型声明和表单逻辑是正确的,因为表单提交的是单个Personel对象。具体选择哪种方案,取决于你的实际业务需求:需展示多条数据选方案1,仅展示当前提交数据选方案2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:30:55