如果需要内联 }
Inline if expected }
只是尝试在我的部分视图中添加内联,但一直期待}
每 5 件我都想要 table
@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 个项目都有 table.
@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、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>
您正在尝试每第 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>
}
您可以将剃须刀块与开关盒结合使用。
@{
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>
"problem" 你的代码是 Razor 试图找到 table 元素的结束标记,因为你实际上从来没有用好的语法关闭它,它表明你错过了结束for 循环和 table 标记中的括号。正如您所说,如果您删除 table 标签效果很好,那么为了避免剃刀尝试完成标签元素,因为 "error" 告诉您这是因为您没有结束标签,只需添加一个 @:
在 <table>
和 </table>
之前,问题应该会消失。
当然你需要确保你的 html 代码没问题,因为你告诉 razor 它是一个字符串,而不是 table,但是在 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>
我知道这是一个很好的解决方案,但我的一个朋友曾经这样做过,这就是他解决该问题的方式。希望这有帮助
只是尝试在我的部分视图中添加内联,但一直期待}
每 5 件我都想要 table
@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 个项目都有 table.
@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、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>
您正在尝试每第 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>
}
您可以将剃须刀块与开关盒结合使用。
@{
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>
"problem" 你的代码是 Razor 试图找到 table 元素的结束标记,因为你实际上从来没有用好的语法关闭它,它表明你错过了结束for 循环和 table 标记中的括号。正如您所说,如果您删除 table 标签效果很好,那么为了避免剃刀尝试完成标签元素,因为 "error" 告诉您这是因为您没有结束标签,只需添加一个 @:
在 <table>
和 </table>
之前,问题应该会消失。
当然你需要确保你的 html 代码没问题,因为你告诉 razor 它是一个字符串,而不是 table,但是在 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>
我知道这是一个很好的解决方案,但我的一个朋友曾经这样做过,这就是他解决该问题的方式。希望这有帮助