Подтвердить что ты не робот

Булевский дисплей модели MVC да или нет

У меня есть логическое поле в моей модели в инфраструктуре сущности mvc 4 4.5

Я хочу отобразить поле в моем представлении

я использую этот вызов

@item.isTrue

но я получил true или false,

Я хочу получить yes, когда true и нет, когда false

что мне делать?

4b9b3361

Ответ 1

На ваш взгляд:

@(item.isTrue?"Yes":"No")

Ответ 2

Вы можете использовать собственный способ расширения html-помощника, например:

@Html.YesNo(item.IsTrue)

Вот код для этого:

public static MvcHtmlString YesNo(this HtmlHelper htmlHelper, bool yesNo)
{
    var text = yesNo ? "Yes" : "No";
    return new MvcHtmlString(text);
}

Таким образом, вы можете повторно использовать его по всему сайту с помощью одной строки кода Razor.

Ответ 3

Чтобы расширить ответ на DigitalD, вы можете рассмотреть его обертывание в методе расширения:

public static string ToFriendlyString(this Boolean b)
{
    return b ? "Yes" : "No";
}

Затем вы можете использовать его повсюду:

@item.IsTrue.ToFriendlyString()

Ответ 4

В вашей модели напишите что-нибудь вроде этого:

public Nullable<bool> Active
{
    get;
    set;
}
public string ISActive
{
    get
    {
        return (bool)this.Active ? "Yes" : "NO";
    }
}

Active - это логическое свойство, мы создаем свойство ISActive для чтения его значения и отображаем соответствующее сообщение пользователю.

Ответ 5

Это немного поздно, но...

Один полезный метод, пропущенный другими ответами на ответы, - это метод Custom DisplayTemplate. Поместив этот код:

@model bool
<p>@{Model ? "Yes" : "No"}</p>

В частичном представлении (возможно, YesNo.cshtml) в папке "Шаблоны" (/Views/Shared/DisplayTemplates). Затем, на ваш взгляд, используйте эту строку:

@Html.Display(item.isTrue,"YesNo")

где "YesNo" - это то, что вы назвали вашим Partial View, минус расширение .cshtml.

Добавив вторую строку (templateName), вы указываете DisplayExtensions для отображения логического с вашим настраиваемым шаблоном, а не по умолчанию (флажок).

Этот метод может быть не самым простым в этой ситуации, но он пригодится в более сложных ситуациях (например, пользовательский календарь для выбора дат)

Ответ 6

Если вы в спешке или используете целое число, а не бит. (Я делаю это, если у вас есть третий вариант позже, а ваш yes/no становится yes, no, octopus, как мне всегда кажется, вот простой простой быстрый грязный способ... объявите переменную в верхней части окна Razor:

@model MyModel
@using My.Models;
@{
    ViewBag.Title = "Index";
    ViewBag.ReturnUrl = "";
    string Active = ""; //This will hold your "Yes" or "No"
 }

Когда вы проходите через свои элементы... Следующий код установит вашу строковую переменную Active на "Да" или "Нет", а затем вы просто покажете ее как есть на странице (без разметки @Html.DisplayFor(...).

@{if (item.Active == 0){Active = "No";}else{Active = "Yes";}}
@Active

В случае, если вы уже не знаете, окружение всего "if" Statement с помощью @{} облегчает жизнь - в скобках не требуется @...