Условное форматирование в mvc - PullRequest
0 голосов
/ 01 марта 2012

Css:

.placeHolder {
    color: darkgray
}

Вид:

Компания: @ Html.PlaceholderTag (@ Model.CompanyName, "Добавить Компания ")

Метод расширения:

public static class HtmlHelpers
{
     public static string PlaceholderTag(this HtmlHelper helper, string src, string placeHolder)
     {
         return string.IsNullOrEmpty(src) ? placeHolder : src;
     }
}

Идея состоит в том, что название компании заполнено, оно должно быть показано черным, в противном случае оно должно показывать строку «Добавить компанию» темно-серым цветом.

Как я мог этого достичь? В приведенном выше примере результаты всегда отображаются серым цветом.

UPDATE

Есть два решения для этого. Создание ViewModel, чтобы обернуть модель и добавить дополнительные флаги, и View использует условный флаг C # для флагов, чтобы решить, что делать:

Или, альтернативно, использовать метод расширения для дополнительного HTMLHelper. Эффективно MVC делает это из коробки с HTml.EditorFor () и т. Д.

public static MvcHtmlString PlaceholderTag(this HtmlHelper helper, string src, string placeHolder)
        {
            const string original = "<span>{0}</span>";
            const string formattedPlaceholder = "<span class=\"placeHolder\">{0}</span>";
            return string.IsNullOrEmpty(src) ? new MvcHtmlString(string.Format(formattedPlaceholder, placeHolder)) : new MvcHtmlString(string.Format(original, src));
        }

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Вы можете попробовать следующее:

public static class HtmlHelpers
{
    public static MvcHtmlString PlaceholderTag(this HtmlHelper helper, string src, string placeHolder)
    {
        const string formattedPlaceholder = "<span class=\"placeholder\">{0}</span>";
        return string.IsNullOrEmpty(src) ? new MvcHtmlString(string.Format(formattedPlaceholder, src)) : src;
    }
}
1 голос
/ 01 марта 2012

Добавление логики if в представление. Задайте класс или цвет, или что хотите, одним способом, если название компании заполнено, и другим способом, если это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...