2012-03-22 8 views
18

私はブール値のプロパティIsActiveを持っています。ビューには、そのプロパティ(IsActiveを含む)を持つオブジェクトのリストがあります。しかし、IsActiveはブール値なので編集不可能なチェックボックスです。 DisplayFor()をDisplayTextFor()に変更すると、チェックボックスの代わりにTrueまたはFalseが表示されます。 TrueとFalseを「Active」と「Inactive」に変更するにはどうすればよいでしょうか?Html.DisplayForブール値の変更チェックボックスMVC

 @Html.DisplayTextFor(modelItem => item.IsActive) 

そして私はあなたがあなたの財産の表示方法をフォーマットする表示テンプレートを使用することができます赤

答えて

29

に緑と「非アクティブ」から「アクティブ」スタイルです。

~/Sharedまたはこのテンプレートを使用するビューが存在するビューフォルダにDisplayTemplatesフォルダを作成します。

新しい部分ビューをこのフォルダに追加します。あなたの好きな名前を付けてください。 IsActive.cshtml

@model bool 
@if (Model == true) 
{ 
    @Html.Encode("Active") 
} 
@if (Model == false) 
{ 
    @Html.Encode("Inactive") 
} 

今では、この表示テンプレートを使用することを知っているようにあなたの財産にデータアノテーションを追加します。

[UIHint("IsActive")] 
public bool IsActive { get; set; } 

この注釈を持つ任意のブール値の使用Html.DisplayFor、それが一致する名前を持つ表示テンプレートに従ってフォーマットされます。微調整を行うことで、表示テンプレートに色の変更スタイルを直接配置することができます。あなたはこの試みることができる

+4

また、 'Html.DisplayFor'の' templateName'パラメータでテンプレートを適用することもできます。 – NicolasF

2

@if (item.IsActive) 
{ 
    @string.Format("Active"); 
} 
else 
{ 
    @string.Format("Inactive"); 
} 
2

をこれは古い質問ですが、これは、誰かを助けるかもしれません。私はまったく同じ問題を抱え、@(IsFooBar ? "Yes" : "No")で解決しました。

関連する問題