c# - Razor 三元逻辑打印整个字符串而不是模型值?
问题描述
我一直在使用一个逻辑语句,它不断给我错误,因为有一个语法错误,但找不到这个语法错误的位置?
我基本上想在给定布尔值的两个样式集之间进行更改
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# 而不是原始字符串。使用示例:
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});";
推荐阅读
- shell - 无法使用 shell 脚本从文本文件中读取值
- python-3.x - 如何在深度嵌套字典中出现所选键的任何地方用其值替换键:值对?
- javascript - 当输入的长度为 0 时,用户无法发送消息需要一些帮助
- c++ - 为什么用户提供的构造函数允许实例化 const 类实例?
- neural-network - 如何使用Detectron2在视频上运行densepose
- spring - springdoc swagger-ui HTML页面如何配置自定义URL?
- python - 检查两个节点链并计算它们是否具有相同的数据
- nuxt.js - 在 NuxtJS 中使用 i18n-n 功能组件
- assembly - nasm:“符号 rip 未定义” - 如何使用相对于“rip”寄存器的 lea 指令?
- ajax - AWS Amplify 上的 XMLHttpRequest 请求 HTML 失败