Ответ 1
Вы должны просто использовать трехмерный оператор, например, название:
@(string.IsNullOrEmpty(Model.Prop) ? "null" : "'" + Model.Prop + "'")
Имея немного проблем, выясняя использование троичного двигателя с механизмом просмотра Razor.
Моя модель имеет свойство string. Если это свойство строки равно null, я хочу отобразить null
в представлении. Если свойство не равно null, я хочу, чтобы оно отображало значение свойства с ведущим и конечным '
.
Как я могу это сделать?
UPDATE: Извините, изменился вопрос немного.
Вы должны просто использовать трехмерный оператор, например, название:
@(string.IsNullOrEmpty(Model.Prop) ? "null" : "'" + Model.Prop + "'")
Предположим, что у вас есть объект с именем Test
с свойствами First
и Last
:
public class Test {
public string First { get; set; }
public string Last { get; set; }
}
Вы можете использовать DisplayFormat.DataFormatString
и DisplayFormat.NullDisplayText
для достижения своей цели:
public class Test {
[Display(Name = "First Name")]
[DisplayFormat(DataFormatString = "'{0}'", NullDisplayText = "'null'")]
public string First { get; set; }
[Display(Name = "Last Name")]
[DisplayFormat(DataFormatString = "'{0}'", NullDisplayText = "'null'")]
public string Last { get; set; }
}
И в поле зрения:
@Html.DisplayFor(model => model.First)
@Html.DisplayFor(model => model.Last)
Я тоже меняю ответ:
[DisplayFormat(DataFormatString = "'{0}'", NullDisplayText = "null")]
Тернар, циклы, С# и прочее делают взгляды уродливыми.
То, что модели представления точно предназначены для выполнения:
public class MyViewModel
{
[DisplayFormat(NullDisplayText = "null", DataFormatString = "'{0}'"]
public string MyProperty { get; set; }
}
а затем в вашем строго типизированном виде просто:
@model MyViewModel
...
@Html.DisplayFor(x => x.MyProperty)