只是尝试在我的局部视图中添加内联,但不断期待}
我想在自己的桌子上每5件物品
@model IList<PAL.Intranet.Models.MonitorDetailModel>
<div>
@for (int i = 0; i < @Model.Count(); i++)
{
<table>
<tr>
@if (i % 5 == 0)
{
<tr>
}
<td><img src="@if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.OK)
{ @PAL.Intranet.Models.AlertStateImage.OK }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Alert)
{ @PAL.Intranet.Models.AlertStateImage.Alert }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Warning)
{ @PAL.Intranet.Models.AlertStateImage.Warning }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Critical)
{ @PAL.Intranet.Models.AlertStateImage.Error }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Error)
{ @PAL.Intranet.Models.AlertStateImage.Error }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Unknown)
{ @PAL.Intranet.Models.AlertStateImage.Unknown }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Online)
{ @PAL.Intranet.Models.AlertStateImage.OK }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Offline)
{ @PAL.Intranet.Models.AlertStateImage.Error }"
width="24" height="24"/></td>
<td><b>@Model[i].Item:</b></td>
<td style="padding:0 0 0 15px;">@Model[i].TaskItem.ToString(): </td>
<td>@if (@Model[i].Output != null)
{ @Model[i].Output }
else
{ @Model[i].AlertState.ToString() }</td>
<td style="padding:0 0 0 15px;">Captured: </td>
<td>@Model[i].Captured</td>
@if (i % 5 == 0)
{
</td>
}
</tr>
</table>
}
</div>
更新1
仍然期待}。我想要的每5件物品都有自己的桌子。
@model IList<PAL.Intranet.Models.MonitorDetailModel>
<div>
@for (int i = 0; i < @Model.Count(); i++)
{
@if (i == 0 | i % 5 == 0)
{
<table>
<tr>
}
<td><img src="@if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.OK)
{ @PAL.Intranet.Models.AlertStateImage.OK }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Alert)
{ @PAL.Intranet.Models.AlertStateImage.Alert }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Warning)
{ @PAL.Intranet.Models.AlertStateImage.Warning }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Critical)
{ @PAL.Intranet.Models.AlertStateImage.Error }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Error)
{ @PAL.Intranet.Models.AlertStateImage.Error }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Unknown)
{ @PAL.Intranet.Models.AlertStateImage.Unknown }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Online)
{ @PAL.Intranet.Models.AlertStateImage.OK }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Offline)
{ @PAL.Intranet.Models.AlertStateImage.Error }"
width="24" height="24"/></td>
<td><b>@Model[i].Item:</b></td>
<td style="padding:0 0 0 15px;">@Model[i].TaskItem.ToString(): </td>
<td>@if (@Model[i].Output != null)
{ @Model[i].Output }
else
{ @Model[i].AlertState.ToString() }</td>
<td style="padding:0 0 0 15px;">Captured: </td>
<td>@Model[i].Captured</td>
@if (i == 0 | i % 5 == 0)
{
</tr>
</table>
}
}
</div>
更新3
期望}在第1,3,39,39行
@model IList<PAL.Intranet.Models.MonitorDetailModel>
<div>
@for (int i = 0; i < @Model.Count(); i++)
{
if (string.IsNullOrWhiteSpace(@Model[i].Output))
{
Model[i].Output = @Model[i].AlertState.ToString();
}
string image = string.Empty;
switch (@Model[i].AlertState)
{
case PAL.Intranet.Models.AlertState.OK:
image = PAL.Intranet.Models.AlertStateImage.OK;
break;
case PAL.Intranet.Models.AlertState.Warning:
image = PAL.Intranet.Models.AlertStateImage.Warning;
break;
case PAL.Intranet.Models.AlertState.Critical:
image = PAL.Intranet.Models.AlertStateImage.Error;
break;
case PAL.Intranet.Models.AlertState.Error:
image = PAL.Intranet.Models.AlertStateImage.Error;
break;
case PAL.Intranet.Models.AlertState.Unknown:
image = PAL.Intranet.Models.AlertStateImage.Unknown;
break;
case PAL.Intranet.Models.AlertState.Online:
image = PAL.Intranet.Models.AlertStateImage.OK;
break;
case PAL.Intranet.Models.AlertState.Offline:
image = PAL.Intranet.Models.AlertStateImage.Error;
break;
default:
image = PAL.Intranet.Models.AlertStateImage.Unknown;
break;
}
@if (i % 5 == 0)
{
<table>
}
<tr>
<td><img src="@image" width="24" height="24"/></td>
<td><b>@Model[i].Item:</b></td>
<td style="padding:0 0 0 15px;">@Model[i].TaskItem.ToString(): </td>
<td>@Model[i].Output</td>
</tr>
@if (i % 5 == 0)
{
</table>
}
}
</div>
答案 0 :(得分:1)
你试图每隔5个项目添加一个td,但是在if列中你需要初始化tr并最后尝试关闭td。根据发布的代码,标签不匹配。你能试试下面的代码吗?
@for (int i = 0; i < @Model.Count(); i++)
{
<table>
<tr>
@if (i % 5 == 0)
{
<td>
}
<td><img src="@if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.OK)
{ @PAL.Intranet.Models.AlertStateImage.OK }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Alert)
{ @PAL.Intranet.Models.AlertStateImage.Alert }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Warning)
{ @PAL.Intranet.Models.AlertStateImage.Warning }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Critical)
{ @PAL.Intranet.Models.AlertStateImage.Error }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Error)
{ @PAL.Intranet.Models.AlertStateImage.Error }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Unknown)
{ @PAL.Intranet.Models.AlertStateImage.Unknown }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Online)
{ @PAL.Intranet.Models.AlertStateImage.OK }
else if (@Model[i].AlertState == PAL.Intranet.Models.AlertState.Offline)
{ @PAL.Intranet.Models.AlertStateImage.Error }"
width="24" height="24"/></td>
<td><b>@Model[i].Item:</b></td>
<td style="padding:0 0 0 15px;">@Model[i].TaskItem.ToString(): </td>
<td>@if (@Model[i].Output != null)
{ @Model[i].Output }
else
{ @Model[i].AlertState.ToString() }</td>
<td style="padding:0 0 0 15px;">Captured: </td>
<td>@Model[i].Captured</td>
@if (i % 5 == 0)
{
</td>
}
</tr>
</table>
}
答案 1 :(得分:1)
您可以将剃须刀块与开关盒结合使用。
@{
string imageSource = string.Empty;
switch (Model[i].AlertState) {
case PAL.Intranet.Models.AlertState.OK:
imageSource = PAL.Intranet.Models.AlertStateImage.OK ;
break;
case PAL.Intranet.Models.AlertState.Alert:
imageSource = PAL.Intranet.Models.AlertStateImage.Alert
break;
...
}
}
<td><img src="@imageSource" width="24" height="24"/></td>
修改强>
使用
@model IList<PAL.Intranet.Models.MonitorDetailModel>
<div>
@for (int i = 0; i < @Model.Count(); i++)
{
string imageSource = string.Empty;
switch (Model[i].AlertState) {
case PAL.Intranet.Models.AlertState.OK:
imageSource = PAL.Intranet.Models.AlertStateImage.OK ;
break;
case PAL.Intranet.Models.AlertState.Alert:
imageSource = PAL.Intranet.Models.AlertStateImage.Alert
break;
...
}
@if (i % 5 == 0)
{
<table>
}
<tr>
<td><img src="@imageSource" width="24" height="24"/></td>
<td><b>@Model[i].Item:</b></td>
<td style="padding:0 0 0 15px;">@Model[i].TaskItem.ToString(): </td>
<td>@(Model[i].Output != null ? @Model[i].Output :@Model[i].AlertState.ToString())</td>
<td>@Model[i].Captured</td>
</tr>
@if (i % 5 == 0)
{
</table>
}
}
</div>
答案 2 :(得分:0)
&#34;问题&#34;使用你的代码Razor试图找到table元素的结束标记,并且因为你实际上从未用良好的语法关闭它,它显示你缺少for循环中的结束括号和表标签。如你所说,如果删除表标签效果很好,那么为了避免剃刀试图完成标签元素,因为&#34;错误&#34;告诉您,因为您没有结束标记,只需在@:
和<table>
之前添加</table>
,问题就会消失。
当然你需要确保你的html代码没问题,因为你告诉剃刀它是一个字符串,而不是一个表,但在HTML中它将呈现为<table>
标签
@model IList<PAL.Intranet.Models.MonitorDetailModel>
<div>
@for (int i = 0; i < @Model.Count(); i++)
{
if (string.IsNullOrWhiteSpace(@Model[i].Output))
{
Model[i].Output = @Model[i].AlertState.ToString();
}
string image = string.Empty;
switch (@Model[i].AlertState)
{
case PAL.Intranet.Models.AlertState.OK:
image = PAL.Intranet.Models.AlertStateImage.OK;
break;
case PAL.Intranet.Models.AlertState.Warning:
image = PAL.Intranet.Models.AlertStateImage.Warning;
break;
case PAL.Intranet.Models.AlertState.Critical:
image = PAL.Intranet.Models.AlertStateImage.Error;
break;
case PAL.Intranet.Models.AlertState.Error:
image = PAL.Intranet.Models.AlertStateImage.Error;
break;
case PAL.Intranet.Models.AlertState.Unknown:
image = PAL.Intranet.Models.AlertStateImage.Unknown;
break;
case PAL.Intranet.Models.AlertState.Online:
image = PAL.Intranet.Models.AlertStateImage.OK;
break;
case PAL.Intranet.Models.AlertState.Offline:
image = PAL.Intranet.Models.AlertStateImage.Error;
break;
default:
image = PAL.Intranet.Models.AlertStateImage.Unknown;
break;
}
if (i % 5 == 0)
{
@:<table>
}
<tr>
<td><img src="@image" width="24" height="24"/></td>
<td><b>@Model[i].Item:</b></td>
<td style="padding:0 0 0 15px;">@Model[i].TaskItem.ToString(): </td>
<td>@Model[i].Output</td>
</tr>
if (i % 5 == 0)
{
@:</table>
}
}
</div>
我知道这是一个很好的解决方案,但我的一位朋友曾经这样做过,而且他是如何解决这个问题的。希望这有帮助