2010-02-03 2 views
8

Was ist der beste Weg, mit „Ja“ oder „Nein“, je auszudrucken auf einen WertHilfe mit C# und Bool auf asp.net Mvc

Meiner Ansicht I

Model.isStudent drucken möchten

und ich will nicht wahr oder falsch, ich will ja oder nein .... muss ich sonst noch eine Aussage schreiben?

Antwort

11

schreiben eine Hilfsmethode:

public static class MyExtensions 
{ 
    public static string FormatBool(this HtmlHelper html, bool value) 
    { 
     return html.Encode(value ? "Yes" : "No"); 
    } 
} 

Und es wie folgt verwenden:

<%= Html.FormatBool(Model.IsStudent) %> 
6

Wie wäre es eine Erweiterungsmethode auf Bool:

public static class BoolExtensions { 
    public static string ToYesNo(this bool value) { 
     return value ? "Yes": "No"; 
    } 
} 

Verwendung wäre:

Model.isStudent.ToYesNo(); 
2

MVC 4: Dieses Beispiel zeigt detailliert die Implementierung von booleschen Vorlagen für eine Dropdownliste, die Yes, No und Not Set-Werte enthält und auch Null Bool-Werte verarbeitet. Inspiriert von Darin Dimitrov und Jorge - Danke.

Modell Student.cs

[Display(Name = "Present:")] 
[UIHint("YesNo")] 
public bool? IsPresent { get; set; } 

DisplayTemplates: YesNo.cshtml

@model Nullable<bool> 

@if (Model.HasValue) 
{ 
    if (Model.Value) 
     { <text>Yes</text> } 
    else 
     { <text>No</text> } 
} 
else 
    { <text>Not Set</text> } 

EditorTemplates: YesNo.cshtml

@model Nullable<bool> 

@{ 
    var listItems = new[] 
    { 
     new SelectListItem { Value = "null", Text = "Not Set" }, 
     new SelectListItem { Value = "true", Text = "Yes" }, 
     new SelectListItem { Value = "false", Text = "No" } 
    }; 
} 

@if (ViewData.ModelMetadata.IsNullableValueType) 
{ 
    @Html.DropDownList("", new SelectList(listItems, "Value", "Text", Model)) 
} 
else 
{ 
    @Html.CheckBox("", Model.Value) 
} 

Ausblick:

<div class="editor-label"> 
     @Html.LabelFor(model => model.IsPresent) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.IsPresent) 
     @Html.ValidationMessageFor(model => model.IsPresent) 
    </div>