我正在寻找一个我已设置条件的表格,以便按类型显示。例如,我的条件是行为绿色,行为红色,行为蓝色。我想订购这些表,因此它首先显示绿色行,蓝色行显示第二个,红色行显示第三个。我正在创建条件,使用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">
根据上述方法,我不能使用==等运算符吗? 此外,背景颜色中的剃刀@由于某种原因无法识别并要求正确的颜色
(不得不删除以前的代码,因为它说格式不正确,拒绝让我编辑帖子
答案 0 :(得分:1)
将所有if
条件移至模型。你的观点应该只有
<td style="background-color: @fildeDetail.BackgroundColor">
@if (fileDetail.IsFolder )
{
<img alt="ListView" src="@Url.Content("https://s27.postimg.org/3ywaao4sz/new_Folder1.png")" style="width: 20px; height: 25px;" />
}
else
{
<img alt="ListView" src="@Url.Content("http://www.clker.com/cliparts/N/K/u/R/m/8/file-icon-md.png")" style="width: 20px; height: 25px;" />
}
<a href="#Section1">@Html.DisplayFor(modelItem => fileDetail.Name)</a>
</td>
然后,您可以根据foreach
或模型本身更改订单。
@foreach(var fileDetail in Model.Folder1.FileDetails
.OrderBy(fd => fd.BackgroundColor == "green"? 0: (fd.BackgroundColor == "red"? 1 : 2)))
虽然它看起来像代码味道,依靠颜色来设置顺序。