只是在我的局部视图中尝试添加内联,但一直期待着}

我要在自己的表中每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():&nbsp;&nbsp;</td>
                <td>@if (@Model[i].Output != null)
                    { @Model[i].Output }
                    else
                    { @Model[i].AlertState.ToString() }</td>
                <td style="padding:0 0 0 15px;">Captured:&nbsp;&nbsp;</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():&nbsp;&nbsp;</td>
            <td>@if (@Model[i].Output != null)
                { @Model[i].Output }
                else
                { @Model[i].AlertState.ToString() }</td>
            <td style="padding:0 0 0 15px;">Captured:&nbsp;&nbsp;</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():&nbsp;&nbsp;</td>
        <td>@Model[i].Output</td>
        </tr>
        @if (i % 5 == 0)
        {
            </table>
        }
    }
</div>

#1楼 票数: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():&nbsp;&nbsp;</td>
                <td>@if (@Model[i].Output != null)
                    { @Model[i].Output }
                    else
                    { @Model[i].AlertState.ToString() }</td>
                <td style="padding:0 0 0 15px;">Captured:&nbsp;&nbsp;</td>
                <td>@Model[i].Captured</td>

                @if (i % 5 == 0)
                {
                    </td>
                }

            </tr>
        </table>
    }

#2楼 票数: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():&nbsp;&nbsp;</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>

#3楼 票数:0 已采纳

代码的“问题”是Razor试图找到table元素的结束标记,并且由于您实际上从未以良好的语法关闭它,因此表明您在for循环和table标记中缺少了结束括号。 如您所说,如果删除table标记效果很好,那么避免剃刀尝试完成标记元素,因为“错误”告诉​​您这是因为您没有结束标记,只需在<table>之前添加@:</table> ,问题应该消失了。

当然,您需要确定html代码是否正确,因为您要告诉razor它是一个字符串,而不是一个表,但是在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():&nbsp;&nbsp;</td>
            <td>@Model[i].Output</td>
            </tr>
            if (i % 5 == 0)
            {
                @:</table>
            }
        }
    </div>

我知道这是一个很好的解决方案,但是我的一位朋友曾经这样做过,这就是他解决该问题的方式。 希望这可以帮助

  ask by Tsukasa translate from so

未解决问题?本站智能推荐:

4回复

EditorTemplate无法按预期呈现?

我需要能够在我正在处理的MVC 5应用程序中动态添加/删除行到Tabel。 我还在我的项目中包含了淘汰赛,因为我用它来回发到我的viewModel上的预制件计算。 到目前为止我所做的是在我的用户模型上创建一个List来保存AdditionalUsers的详细信息: 其他用户类定义为:
2回复

查看预期的IEnumerable

好吧,我是Asp.net Mvc的新手,我可以从头开始学习,我有一个控制支出和收入的应用程序,我现在想做的是基于收入列表,支出给了我用户余额,即时通讯在尝试控制此功能时遇到很多问题,我不知道自己是否以正确的方式进行操作 这是我的模型: 我所做的就是,首先尝试控制用户何时插入“收入”或类似
1回复

如何避免重复的内联条件定义Html.EditorFor()的htmlAttributes

我正在构建一个表单,我必须继续使用内联条件来添加一个readonly html属性: 您不能仅对@readonly属性的值使用条件,因为即使将其设置为null,它也将以readonly=""呈现给客户端,这足以让浏览器将该字段设置为只读。 必须有一个更好的方法来做这个,而不是每个表单元素
1回复

临时文件中的“编译错误CS1513:}预期”,由cshtml文件中的空行1触发

所以,是的,我遇到了“预期的对象”错误,只是它不在我触摸的任何文件中,而是在临时文件中! 不,在cshtml文件中只有两个{字符会触发此操作,并且所有字符都带有大括号。 就像在VS 2015中一样,是Delete.cshtml文件,文件名下带有红色波浪形,并且“错误”窗口声称缺少的}应该位
1回复

预期为“{”,但找到了“)”。块语句必须包含在Asp.NetMVC5中的“{”和“}”中

ContestM->模型的属性 控制器动作 在主视图上单击按钮时,正在执行此操作,并且在处理了从db下拉的数据之后,i将值分配给下拉对象并尝试在部分视图中显示该值 我的Razor视图(assign.cshtml) 找不到我要去哪里错了。非常感谢您的帮助。
2回复

Html.ActionLink表现不符合预期

我正在尝试从Html.ActionLink获取漂亮的URL,但是正在获取querystring版本。 我定义了一条路线,当我在浏览器的导航栏中输入应输入的值并最终获得视图并按我认为会执行的控制器操作时,该路线将完美工作。 我的路线定义: 我的助手呼叫标记: 实际结果: 我的期望
1回复

例外:ASP.NETMVC控制器中的“值不在预期范围内”[重复]

这个问题在这里已有答案: 自定义任务运行器方法抛出ArgumentException 1的答案 我有这个字符串格式化,并在此部分抛出异常(字符串体....) confirmationToken和email是字符串,我的ConfirmEmail是 这是StackTrace
2回复

RazorViewIsAuthenticated没有按预期工作

我创建了一个简单的MVC应用程序,它使用随新项目提供的.Net Membership Provider。 我试图让标签正确显示。 我可能听不懂,但这是我的代码: 在这一行: 我正在尝试显示正确的标签,如果它们已经过身份验证。 这总是真实的...... 我该怎么做? 我显然没