2012-05-03 19 views
0

私はboolプロパティIsMaleを持つモデルを持っています。ビューでは、私はどのように値を変更することができます値のテーブルがありますか?asp.net mvc 3ひげ剃りモデルの値を変更して表示

私はこれを試してみました:

<td> 
      @if (item.IsMale == true) 
      { 
       @Html.DisplayFor(modelItem => "Male") 
      } 
      else 
      { 
       @Html.DisplayFor(modelItem => "Female") 
      } 
     </td> 

しかし、イム取得エラー:

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions. 

そして中には、私は>男性>女性のラジオボタンを作成し、ブール値でそれを返すことができますどのように表示、作成?

答えて

1

はおそらく、あなたはこのようなもの使用することができます:私はそれはあなたがしたいラジオボタンであることがわかり

@Html.CheckBoxFor(model => model.IsMale) 

を...

@Html.RadioButtonFor(model => model.IsMale, true) 

@Html.RadioButtonFor(model => model.IsMale, false) 
+0

チェックボックスは、ユーザーにそのような選択を提示する非常に珍しい方法だろう:「[]私は(チェックしないでください男性の人です女性の場合はこのボックス) " – chiccodoro

+0

同意すると、私はそれが私の答えを更新した理由だと分かりました。 – kaze

2
<td> 

    @Html.Display(item.IsMale ? "Male" : "Female") 

</td> 
2

@Html.DisplayForは、モデルの性質を取り、そのプロパティの値を出力します。あなたがしようとしているのは、ハードコードされた文字列を印刷することです。そのためにDisplayForは必要ありません。試してみてください:

<td> 
    @if (item.IsMale) 
    { 
     <text>Male</text> 
    } 
    else 
    { 
     <text>Female</text> 
    } 
</td> 

性別をブール値にしないと、より良いデザインになります。 「未指定」などを後で追加することもできます。ジェンダーを「ファーストクラス」のエンティティにすると、「男性」と「女性」の名前とラジオボタンはハードコードされている必要はありません。

「ジェンダー」というクラスがあるとしますプロパティ "Name"。あなたのmodelItemには "Gender"というプロパティがあり、withは "Gender"タイプのオブジェクトです。

<td>@Html.DisplayFor(modelItem => modelItem.Gender.Name)</td> 

、あなたのデータソースから利用可能性別の全体のリストを取得し、ViewModelににRadioButtonListのようにそれらを置くことができますラジオのため。そして、あなたは簡単に使用することができます。

@Html.RadioButtonListFor(modelItem => modelItem.AllGenders) 

も参照してくださいHas anyone implement RadioButtonListFor<T> for ASP.NET MVC?

関連する問題