2016-08-24 60 views
2

私はMVCでcheckboxesを使っています。私はbit type.The私のエラーを与える次のコードとして1つの列を持つテーブルがあります。暗黙的に型 'bool?'を変換できません。 to 'bool' Checkbox MVC

[HttpPost] 
public string Index(IEnumerable<City> cities) 
{ 
    if (cities.Count(x => x.Chosen) == 0) 
    { 
     return "You did not select any city"; 
    } 

    ...... 
} 

ここで選択したビットタイプです。私がそれを構築しようとしているとき:

暗黙のうちにタイプ 'bool?'を変換できません。ブールに明示的な 変換が存在します(キャストがありませんか?)

+0

が ''ブールのx.Chosen'タイプです使用することができますか? '? –

答えて

1

エラーは自己説明的です。 x.Chosenbool?タイプ(Nullable<bool>)です。

まず、nullにチェックする必要があります。例えば、次のように:

[HttpPost] 
public string Index(IEnumerable<City> cities) 
{ 
    if (cities.Count(x => x.Chosen.HasValue && x.Chosen.Value) == 0) 
    { 
     return "You did not select any city"; 
    } 

    ...... 
} 

それはこのように書くことでも良いでしょう:フィールド選ばれたが、それは、モデル内の非NULL可能なデータベース&でNULL可能であるため、

[HttpPost] 
public string Index(IEnumerable<City> cities) 
{ 
    if (!cities.Any(x => x.Chosen.HasValue && x.Chosen.Value)) 
     return "You did not select any city"; 
    ...... 
} 
0

それが発生しました。これを克服するには、モデルのChosenをnullableとして変更します。例:

public bool? Chosen { get; set; } 

あなたは単に

if (cities.Count(x => x.Chosen) == 0) 
関連する問題