在使用带有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#和东西使视图很难看。* –