我一直在使用逻辑语句,由于存在语法错误,该逻辑语句一直给我错误,但无法找到此语法错误的位置?
我基本上想在给定布尔值的两个样式集之间进行切换
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
是否呈现为字符串,并且未采用模型的值...这是怎么回事?
答案 0 :(得分:1)
您需要使用'@',以便将代码解释为C#而不是原始String。用法示例:
var imageStyles = Model.isSelected ? "background-position-x: "+@Model.CropPositionX+"%; background-image: url("+@Model.ContentUrl+");" : "background -position:" + @Model.CropPosition+"%; background-image: url("+@Model.ContentUrl+");";
您还可以使用字符串插值,具体取决于剃刀视图引擎使用的C#版本。
在这种情况下,它看起来像这样(我认为更干净):
var imageStyles = Model.isSelected ? $"background-position-x: {Model.CropPositionX}%; background-image: url({Model.ContentUrl});" : "background -position: {Model.CropPosition}%; background-image: url({Model.ContentUrl});";