【问题标题】:Razor ternary logic prints the entire string rather the model values?Razor 三元逻辑打印整个字符串而不是模型值?
【发布时间】:2019-02-27 18:01:10
【问题描述】:

我一直在使用一个逻辑语句,由于存在语法错误而一直给我错误,但找不到该语法错误的位置?

我基本上想在给定布尔值的两个样式集之间进行更改

        var imageStyles = Model.isSelected ? "background-position-x: Model.CropPositionX%; background-image: url(Model.ContentUrl);" : "background -position: Model.CropPosition%; background-image: url(Model.ContentUrl);";

但是当我将它添加到我的div标签中时,变量imageStyles是否呈现为字符串,并且模型的值没有被取...这里有什么问题?

【问题讨论】:

    标签: c# razor logic ternary


    【解决方案1】:

    您需要使用“@”,以便将代码解释为 C# 而不是原始字符串。使用示例:

     var imageStyles = Model.isSelected ? "background-position-x: "+@Model.CropPositionX+"%; background-image: url("+@Model.ContentUrl+");" : "background -position:" + @Model.CropPosition+"%; background-image: url("+@Model.ContentUrl+");";
    

    您还可以使用字符串插值,具体取决于您的 razor 视图引擎使用的 C# 版本。

    在这种情况下,它看起来像这样(在我看来更干净):

     var imageStyles = Model.isSelected ? $"background-position-x: {Model.CropPositionX}%; background-image: url({Model.ContentUrl});" : "background -position: {Model.CropPosition}%; background-image: url({Model.ContentUrl});";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多