使用 ASP.NET Razor 和 SQL Server 2008 R2
我有一个这样声明的局部变量:
var tsmMtd = db.QueryValue("
SELECT b.Name, SUM(subtotal) totalSUM
FROM DR_TRANS a
INNER JOIN Staff b ON a.Salesno = b.Staffno
WHERE a.salesno in (12,23,28,30)
AND a.TRANSDATE >= dateadd(m, datediff(m, 0, getdate()), 0)
AND a.REF3 = 'Invoice'
GROUP BY b.Name
ORDER BY totalSUM DESC
");
现在从表中返回一个名称数组,按销售额排序。稍后在 HTML 中调用它作为
@tsmMtd.ToString()
打印最上面的名字。好的,一切都很好。现在....
我需要根据顶级销售人员来设置页面文本的格式。如果他们 是顶级销售员,我希望他们的名字变成蓝色。这就是我对销售员的“实际销售额”数字所做的:
<span class=@(salesval12 > 6000 ? "blue" : "red")>@salesval12.ToString("C")</span>
如果超过 6000 值,这可以很好地更改文本的颜色。 (红色和蓝色类在页面上方定义)。所以,我这样做了:
<span class=@(tsmMtd = "CHARLIE JONES" ? "blue" : "red")>Charlie</span>
但加载失败时显示编译器错误消息: CS0029:无法将类型“字符串”隐式转换为“ bool ”
好的,所以我需要知道的是
- 我做错了什么
- 我应该做什么
非常感谢任何帮助。
最佳答案
代替
@(tsmMtd = "CHARLIE JONES" ? "blue" : "red")
应该是
@(tsmMtd == "CHARLIE JONES" ? "blue" : "red")
你写了一个等号而不是两个。其中一个只是将 CHARLIE JONES
保存到 tsmMtd
变量,然后尝试将该字符串变量作为条件进行比较,编译器会显示有关它的错误
关于html - 如何根据作为字符串的查询值格式化html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170995/