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

ASP.NET MVC视图要求GuestListViewModel却传入GuestList模型报错求解

问题排查与解决方案

错误根因

问题出在GuestListController的CreateUpdate方法验证失败分支,代码如下:

else
{
    return View("Index", new GuestList());
}

Index.cshtml明确声明了所需模型类型为FYP_RSVP_MGMT.ViewModels.GuestListViewModel,但该分支传入的是GuestList实体类实例,类型不匹配直接触发了报错。

修复方案

将验证失败时返回的模型替换为正确的GuestListViewModel实例,同时保留用户已填写的表单内容,避免用户操作丢失:

else
{
    // 若需要保证Guest列表数据为最新,可重新查询赋值
    using (var db = DbHelpers.GetConnection())
    {
        guest.Guests = db.Query<GuestList>("Select * From GuestList").ToList();
    }
    return View("Index", guest);
}

其他优化建议

  • 更新逻辑中调用的TryUpdateModelAsync为异步方法,当前未添加await关键字会导致更新逻辑不生效,可改为同步方法TryUpdateModel,或给CreateUpdate方法添加async修饰符、返回类型改为Task<IActionResult>,调用异步方法时添加await。
  • 新增Guest时通过guest.Guests.Count生成ID的逻辑不可靠,存在Guest数据删除后ID重复的风险,建议改为数据库主键自增生成ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:36:03