Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将模型类型转换为布尔_C#_Asp.net Mvc - Fatal编程技术网

C# 无法将模型类型转换为布尔

C# 无法将模型类型转换为布尔,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试通过MVC制作简单的应用程序。这是我的密码- //模型 public class EmployeeModel { public int empID { get; set; } public Gender genderEmployee { get; set; } } public enum Gender { Male, Female } //看法 @using Employee

我正在尝试通过MVC制作简单的应用程序。这是我的密码-

//模型

 public class EmployeeModel
    {
        public int empID { get; set; }
        public Gender genderEmployee { get; set; }
    }

    public enum Gender
    {
        Male,
        Female
    }
//看法

 @using EmployeeTest.Models
    @model EmployeeTest.Models.EmployeeModel

        <div class="form-group">
                    @Html.LabelFor(m => m.genderEmployee)
                    <div class="col-lg-10">
                       @Html.DropDownListFor(m => m.genderEmployee,
                            new SelectList(Enum.GetValues(typeof(Gender))),
                            "Select Gender")
                    </div>
         </div>
我在下面给出的控制器代码中遇到错误- 无法将类型“EmployeeTest.Models.Gender”隐式转换为“bool”


在数据库中,性别的数据类型是bit。

我相信EmployeeInfo对象有一个bool?性别财产。这是说你不能把性别员工变成一个傻瓜?性别您需要将Gender=empModel.genderEmployee替换为Gender=bool?empModel.genderEmployee.

模型和控制器中代码的一点变化解决了我的问题

 public enum Gender
    {
        Male=1,
        Female=0
    }


Gender = Convert.ToBoolean (empModel.genderEmployee)

更改模型以更好地与数据库位对齐将更有效。没有理由使用枚举使其复杂化。试着这样做:

 public class EmployeeModel
    {
        public int empID { get; set; }
        public bool IsMale { get; set; }
    }
如果由于视图/控制器中的其他原因仍需要使用枚举,则可以在将值分配给EmployeeInfo时进行显式转换
反对

你给我们的线路有错误吗?在新员工信息中心?我觉得这里缺少了一些东西。我没有错过,但通过更改代码little-public enum性别{Male=1,Female=0}得到了解决方案Gender=Convert.ToBoolean empModel.genderemployee如果您显示EmployeeInfo类,错误将很明显,不清楚此帖子与问题的关系,因为问题根本没有关于性别的信息,通常看起来是一个糟糕的建议-为什么性别会是布尔值false是否意味着缺少性别?,为什么要使用像将enum强制转换为bool这样脆弱的构造?
 public class EmployeeModel
    {
        public int empID { get; set; }
        public bool IsMale { get; set; }
    }