首页 > 后端开发 > C++ > 为什么我的' categoryId” viewData项目会导致'具有键'categoryId”的' viewData”项目类型为'system.int32',但必须是类型为'iEnumerable'。”错误?

为什么我的' categoryId” viewData项目会导致'具有键'categoryId”的' viewData”项目类型为'system.int32',但必须是类型为'iEnumerable'。”错误?

Patricia Arquette
发布: 2025-02-03 02:56:09
原创
928 人浏览过

>本文说明了如何修复“ categoryId'的viewData项目”中的'aSp.net MVC中的'iEnumerable'”。 出现错误之所以出现错误,是因为下拉列表的助手期望IEnumerable> viewData项目的SelectListItem>(通常是CategoryID对象的集合),但它是接收int>的。 通常,当下拉列表的数据在发布请求期间未正确填充时。

Why is my

核心问题是

>视图模型中的属性(将数据提供给下拉列表)并未在Action的Post方法中刷新。 解决方案是在CategoryList> post方法中重新填充ProjectVM>Create> CategoryList这是如何纠正Create的操作方法的方法:

>

Create>通过在

块中添加
<code class="language-csharp">public ActionResult Create(ProjectVM model)
{
    if (!ModelState.IsValid)
    {
        // Repopulate the CategoryList property
        model.CategoryList = new SelectList(db.Categories, "ID", "Name"); 
        return View(model);
    }
    // ... (Your existing code to save the project) ...
}</code>
登录后复制
>,可以正确填充来自

>表的数据(假设model.CategoryList = new SelectList(db.Categories, "ID", "Name");>是您的数据库上下文),将必要的if (!ModelState.IsValid)提供到CategoryList助手。 这样可以防止类型不匹配并允许成功提交。 Categories构造函数将数据源,值字段(“ ID”)和文本字段(“名称”)获取。 这样可以确保下拉列表显示正确的类别名称和值。db>

以上是为什么我的' categoryId” viewData项目会导致'具有键'categoryId”的' viewData”项目类型为'system.int32',但必须是类型为'iEnumerable'。”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板