在使用帶有Razor視圖引擎的三元組時遇到了一點麻煩。ASP.NET MVC剃刀:三元
我的模型有一個字符串屬性。如果該字符串屬性爲空,我想在視圖中渲染null
。如果該屬性不爲空,我希望它使用前導和尾隨'
來呈現屬性值。
我該怎麼做?
更新:對不起,稍微改變了問題。
在使用帶有Razor視圖引擎的三元組時遇到了一點麻煩。ASP.NET MVC剃刀:三元
我的模型有一個字符串屬性。如果該字符串屬性爲空,我想在視圖中渲染null
。如果該屬性不爲空,我希望它使用前導和尾隨'
來呈現屬性值。
我該怎麼做?
更新:對不起,稍微改變了問題。
你應該只能夠使用三元運算符之類的標題提示:
@(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")]
三元,循環,C#之類的東西,使意見難看。
這就是查看車型特別設計來做到:
public class MyViewModel
{
[DisplayFormat(NullDisplayText = "null", DataFormatString = "'{0}'"]
public string MyProperty { get; set; }
}
,然後在你的強類型的觀點只是:
@model MyViewModel
...
@Html.DisplayFor(x => x.MyProperty)
你是對的。我同意你 –
您可以使用空合併opererator?像這樣的:@ Model.MyString ?? 「'null'」 –
我同意@Darin Dimitrov。 *三元,循環,C#和東西使視圖很難看。* –