2017-03-04 7 views
-2

MVCを使用して簡単なアプリケーションを作成しようとしています。ここに私のコード -モデルの型をboolに変換できません

//モデルがある

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

    public enum Gender 
    { 
     Male, 
     Female 
    } 

// VIEW

@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> 

// CONTROLLER

EmployeeInfo objInfo= new EmployeeInfo() 
        { 
         empName = empModel.empName, 
         Gender = empModel.genderEmployee, 
         dateOFBirth = empModel.dateOfBirth, 
         IsActive = empModel.isActive, 
        }; 

私は以下の通りであるコントローラコードのエラーを取得しています - 'EmployeeTest.Models.Gender'タイプを暗黙的に 'bool?'に変換できません。

データベースでは、性別のデータ型はビットです。

+0

あなたが私たちに与えた行でエラーが発生しましたか?新しいEmployeeInfoで?私はここに何かが欠けていると感じる。 – dbraillon

+0

さて、私は逃したが、あなたはクラスを示した場合 パブリック列挙性別 { 男性= 1、 女性= 0 } 性別= Convert.ToBoolean(empModel.genderEmployee) –

+1

リトルコードを変更することで解決策を持っていませんでしたEmployeeInfoエラーがクリアされる – Steve

答えて

0

EmployeeInfoオブジェクトにはbool? Genderというプロパティがあります。これは、Gender genderEmployeebool? Genderに変換できないということです。 Gender = empModel.genderEmployeeGender = (bool?) empModel.genderEmployeeに置き換える必要があります。モデルとコントローラのコードの変更の

-1

小さな作品は、より良い、より良い動作しますあなたのデータベース(ビット)に合わせてモデルを変更し、私の問題

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


Gender = Convert.ToBoolean (empModel.genderEmployee) 
+2

この投稿がどのように質問に関連しているのかは不明です(質問には「性別」に関する情報が全くありません)、一般的には悪い勧告のように見えます。なぜ「性別」がブール値になるのかなぜジェンダーの不足を意味するのでしょうか?) –

0

を解決しました。列挙型でそれを複雑にする理由はありません。それでもEmployeeInfo() オブジェクトに値を割り当てるときに、明示的な変換を行うことができ、ビュー/コントローラに他の理由のために列挙型を使用する必要がある場合

public class EmployeeModel 
    { 
     public int empID { get; set; } 
     public bool IsMale { get; set; } 
    } 

:このような何かを試してみてください。

関連する問題