我有一个显示来自数据库/表的数据的视图。如果该字段是某个值,我希望该实例显示为具有红色文本。我试过这个,不幸的是我认为foreach循环(我需要)导致问题。具体来说,它使所有文本变为红色,而不仅仅是我想要的实例。
<tbody>
@foreach (var item in Model)
{
var T2stat = @Html.DisplayFor(modelItem => item.T2STATUS).ToString();
var T3stat = @Html.DisplayFor(modelItem => item.T3STATUS).ToString();
<tr>
<td>
@Html.DisplayFor(modelItem => item.EXPORT_DATE)
</td>
@if ((T2stat != "") && (T2stat != "Exported")) {
<td><p style="color:red">
@Html.DisplayFor(modelItem => item.T2STATUS)
</p></td>
}
else{
<td><p style="color:black">
@Html.DisplayFor(modelItem => item.T2STATUS)
</p></td>
}
@if ((T3stat != "") && (T3stat != "Exported")) {
<td><p style="color:red">
@Html.DisplayFor(modelItem => item.T3STATUS)
</p></td>
}
else{
<td><p style="color:black">
@Html.DisplayFor(modelItem => item.T3STATUS)
</p></td>
}
我将变量定义更改为....
var T2stat = (item.T2STATUS != null) ? item.T2STATUS.ToString() : String.Empty;
var T3stat = (item.T3STATUS != null) ? item.T3STATUS.ToString() : String.Empty;
不幸的是,我仍然有同样的问题,尽管我将黑色指定为文本颜色,但值仍显示为红色。即; “导出”应始终显示为黑色文本,null也为黑色,但它为红色,应仅用于错误消息。
答案 0 :(得分:0)
我认为您的问题出在这些作业中:
var T2stat = @Html.DisplayFor(modelItem => item.T2STATUS).ToString();
var T3stat = @Html.DisplayFor(modelItem => item.T3STATUS).ToString();
这将为这些变量分配显示模板的渲染值,而不是数据值。
也许你是这个意思?
var T2stat = (item.T2STATUS != null) ? item.T2STATUS.ToString() : String.Empty;
var T3stat = (item.T3STATUS != null) ? item.T3STATUS.ToString() : String.Empty;
答案 1 :(得分:0)
试试这个......
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.EXPORT_DATE)
</td>
<td>
<p @((item.T2STATUS == null) || (item.T2STATUS == "Exported") ? "style=\"color:black;\"" : "style=\"color:red;\"")>
@Html.DisplayFor(modelItem => item.T2STATUS)
</p>
</td>
<td>
<p @((item.T3STATUS == null) || (item.T3STATUS == "Exported") ? "style=\"color:black;\"" : "style=\"color:red;\"")>
@Html.DisplayFor(modelItem => item.T3STATUS)
</p>
</td>
</tr>
}
</tbody>
如果您还需要其他任何东西,请告诉我......或者这不会起作用.. :)