【发布时间】:2017-06-13 15:58:21
【问题描述】:
我的问题:
我希望订购一张我已设置条件以按类型显示的表格。例如,我有使一行绿色、一行红色、一行蓝色的条件。我想订购这些表格,使其首先显示为绿色行,第二个是蓝色行,第三个是红色行。我通过使用 razor c# 将它们分类为它们的颜色来创造条件
我的研究:
我已经搜索并发现了不相关的问题。他们试图告诉我如何根据名称等按降序或升序对事物进行排序。我找不到将其应用于我创建的条件的方法。
我的努力:
根据建议的答案:
public string BackgroundColour()
{
string colour = string.Empty;
if (ExistsBothFolder && IsContentSame)
{
colour = "lightgreen";
}
else if (!HasSameContentWithAnotherFileName && !ExistsBothFolder && !IsContentSame && !IsDateModifiedSame)
{
colour = "lightcoral";
}
else if (ExistsBothFolder && !IsContentSame)
{
colour = "lightskyblue";
}
else if (HasSameContentWithAnotherFileName && !ExistsBothFolder)
{
colour = "orange";
}
return colour;
}
在我看来:
@foreach (var fileDetail in Model.Folder1.FileDetails.OrderBy(fd => fd.BackgroundColour == "lightgreen"? 0: (fd.BackgroundColour == "lightcoral"? 1 : 2))){
<td style="background-color: @fileDetail.BackgroundColour">
不让我针对上面的方法使用==之类的运算符吗? 此外,由于某种原因,背景颜色中的剃须刀 @ 无法识别,并要求提供正确的颜色。
(不得不删除之前的代码,因为它说它的格式不正确,拒绝让我编辑帖子。)
【问题讨论】:
-
到处都是
== true真烦人。 -
有更好的选择吗?
-
你根本不需要,
(fileDetail.ExistsBothFolder == true & fileDetail.IsContentSame == false)应该是(fileDetail.ExistsBothFolder && !fileDetail.IsContentSame) -
另外
&应该是&&,否则即使左边部分已经为假,它也会评估右边部分。 -
我想我已经习惯使用它了,谢谢