此错误的新手:传递到字典中的模型项的类型为'System.Collections.Generic.List`1 []

如何解决此错误的新手:传递到字典中的模型项的类型为'System.Collections.Generic.List`1 []

我对ASP.NET MVC和C#还是很陌生。我的最后一年的项目要求我使用ASP.NET MVC c#编写一个Web应用程序。如果您能帮助这个新手,我将不胜感激。

我一直收到此错误,但似乎无法弄清楚该错误或如何解决:

传递到字典中的模型项的类型为'System.Collections.Generic.List`1 [test2.Models.UsersModel]',但是此字典需要类型为'test2.Models.user_account的模型项'。

这是我的控制器:

use Cake\Http\Cookie\Cookie;

// ...  

public function beforeFilter(Event $event)
{
    // ...
    $guestID = $this->request->getCookie('guestCookie');
    if(!$guestID) {
        $guestID = Text::uuid();
        
        $cookie = Cookie::create('guestCookie',$guestID,[
            'expires' => new DateTime('+1 days'),'http' => true,]);
        $this->response = $this->response->withCookie($cookie);
    }
    
    $this->guestCookie = $guestID;
    // ...
}

public function error()
{
    // ...
    $cookie = new Cookie('guestCookie');
    $this->response = $this->response->withExpiredCookie($cookie);
    // ...
}

// ...

我的索引-是的,我试图使用一个下拉列表作为roleName,以便我只能从该下拉列表中分配用户的角色,但它不起作用

using System.Net;
using System.Web;
using System.Web.Mvc;
using test2.Models;
using System.Runtime.InteropServices;
using System.Net.Http;
using System.Runtime.InteropServices.WindowsRuntime;

namespace test2.Controllers
{
    //Admin page show be able to manage role 
    public class AdminController : Controller
    {
        public ActionResult Index() {
            ubdcsEntities dc = new ubdcsEntities();

            var userRoles = (from user in dc.user_account
                             select new {
                                 UserId = user.userID,Username = user.username,EmailID = user.emailID,RoleName = (from userRole in dc.userRoles
                                             join role in dc.role1 on userRole.roleID
                                             equals role.roleID
                                             select role.roleName).ToList()
                             }).ToList().Select(p => new UsersModel()
                             {
                                 Username = p.Username,EmailID = p.EmailID,RoleName = p.RoleName.ToString()
                             }).ToList();

            return View(userRoles);
        }
    }
}

我的模特:

@model IEnumerable<test2.Models.UsersModel>
@{
    ViewBag.Title = "Users With Roles";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div class="panel panel-primary">
    <div class="panel-heading">
        <h3 class="box-title">
            <b>Users with Roles</b>
        </h3>
    </div>
    <!-- /.box-header -->
    <div class="panel-body">
        <table class="table table-hover table-bordered table-condensed" id="UsersWithRoles">
            <thead>
                <tr>
                    <td><b>Username</b></td>
                    <td><b>Email</b></td>
                    <td><b>Roles</b></td>
                </tr>
            </thead>
            @foreach (var user in Model)
            {
                <tr>
                    <td>@user.Username</td>
                    <td>@user.EmailID</td>
                    <td>
                        @user.RoleID
        @*Html.DropDownListFor(user => user.FirstOrDefault().RoleName,new SelectList(new[]{"Admin","Student","Counselor"}))*@
                    </td>
                    

                </tr>

            }
        </table>
    </div>

    <div class="panel-footer">
        <p class="box-title"><b>Total Users till @String.Format("{0 : dddd,MMMM d,yyyy}",DateTime.Now)  : </b><span class="label label-primary">@Model.Count()</span></p>
    </div>
</div>


@section scripts{
    <script>

        $(function () {
            $('#UsersWithRoles').DataTable({
                "paging": true,"lengthChange": true,"searching": true,"ordering": true,"info": true,"autoWidth": true
            });
        });
    </script>
}  v>

下面是数据库中的模型(用户帐户)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace test2.Models
{
    public partial class UsersModel
    {
        public int UserID { get; set; }
        public string Username { get; set; }
        public string EmailID { get; set; }
        public int RoleID { get; set; }
        public string RoleName { get; set; }
    }
}

使用@ model.test2.models.user_account的视图-用户注册

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated from a template.
//
//     Manual changes to this file may cause unexpected behavior in your application.
//     Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace test2.Models
{
    using System;
    using System.Collections.Generic;
    
    public partial class user_account
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2214:DoNotCallOverridableMethodsInConstructors")]
        public user_account()
        {
            this.calendars = new HashSet<calendar>();
        }
    
        public int userID { get; set; }
        public string username { get; set; }
        public string emailID { get; set; }
        public string password { get; set; }
        public int roleID { get; set; }
    
        public virtual user_emergency user_emergency { get; set; }
        public virtual user_profile user_profile { get; set; }
        public virtual user_record user_record { get; set; }
        public virtual counselor_account1 counselor_account1 { get; set; }
        public virtual userRole userRole { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage","CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<calendar> calendars { get; set; }
        public virtual role1 role { get; set; }
    }
}

家庭控制器

@model test2.Models.user_account
@{
    ViewBag.Title = "Signup";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Sign in</h2>

<div>
    @using (Html.BeginForm("Signup","Home"))
    {
        <div style="color:red;">@Html.ValidationSummary()</div>
            <!--Show details are saved successfully message-->
            <div class="col-lg-12">@ViewBag.Message</div>
        <br />

        <div class="form-horizontal">
            <hr />
            @Html.ValidationSummary(true,"",new { @class = "text-danger" })

            <div class="form-group">
                @Html.LabelFor(model => model.username,htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.username,new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.username,new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.emailID,htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.emailID,new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.emailID,new { @class = "text-danger" })
                    @Html.ValidationMessage("EmailExist",new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.password,htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.password,new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.password,new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                @Html.LabelFor(model => model.ConfirmPassword,htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.ConfirmPassword,new { htmlAttributes = new { @class = "form-control" } })
                    @Html.ValidationMessageFor(model => model.ConfirmPassword,new { @class = "text-danger" })
                </div>
            </div>

            <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Register" class="btn btn-default" />
                </div>
            </div>
        </div>
    }
    


    <div>
        @Html.ActionLink("Login","Index","Home")
    </div>

</div>

    @section Scripts{
        <script src="~/Scripts/jquery-3.4.1.min.js"></script>
        <script src="~/Scripts/jquery.validate.min.js"></script>
        <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res