我可以将剃刀代码减少到几行吗?

Jun*_*r M 8 c# visual-studio-2010 razor asp.net-mvc-3

我可以减少这个剃刀代码吗?

    <li>
    @{
        if (@Model.PublicationDate.HasValue) {
            @Model.PublicationDate.Value.ToString("D", new System.Globalization.CultureInfo("fr-FR")) 
        }
        else {
            @:"pas disponible"
        }
    }
    </li>
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用:

@{(@Model.PublicationDate.HasValue) ? (@Model.PublicationDate.Value.ToString("D")) : (@:"pas disponible")}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 24

您可以使用以下[DisplayFormat]属性修饰视图模型属性:

[DisplayFormat(DataFormatString = "{0:D}", NullDisplayText = "pas disponible")]
public DateTime? PublicationDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后你的视图变成:

<li>
    @Html.DisplayFor(x => x.PublicationDate)
</li>
Run Code Online (Sandbox Code Playgroud)

所以现在它被简化为一条优雅的线条.

  • +1 - 我不知道这个属性!谢谢! (2认同)