Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果在foreach内安装Station,则MVC视图_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 如果在foreach内安装Station,则MVC视图

C# 如果在foreach内安装Station,则MVC视图,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我试图在Razor视图中的foreach循环中放置一个if语句,但是我得到了一个错误error},这是预期的,如果我删除if语句,则没有错误 我已经尝试了其他类似问题中提到的几个不同选项,比如使用@Html.Raw在中包装,但我要做的只是为字符串变量设置一个值 @foreach (var item in Model) { string RowColor = "Standard"; string RowClassName =

我试图在Razor视图中的foreach循环中放置一个if语句,但是我得到了一个错误
error},这是预期的
,如果我删除if语句,则没有错误

我已经尝试了其他类似问题中提到的几个不同选项,比如使用
@Html.Raw
中包装,但我要做的只是为字符串变量设置一个值

    @foreach (var item in Model)
        {

            string RowColor = "Standard";
            string RowClassName = "row-" + @item.CaseID;
            int StatusDays = int.Parse(@item.StatusDays);

            if (@item.Viewings == 0 && StatusDays >= 14)
            {
                RowColor = "Red";
            }


        <tr class="row-click @RowClassName @RowColor" data-url="/Case/Details/@item.CaseID/">
            <td>
                @Html.DisplayFor(modelItem => item.CaseID)
            </td>
            <td>
                @item.RegistrationDate.Date.ToString("dd-MMM-yyyy")
            </td>
        </tr>
}
@foreach(模型中的变量项)
{
字符串RowColor=“标准”;
字符串RowClassName=“行-”+@item.CaseID;
int StatusDays=int.Parse(@item.StatusDays);
如果(@item.Viewings==0&&StatusDays>=14)
{
RowColor=“红色”;
}
@DisplayFor(modelItem=>item.CaseID)
@item.RegistrationDate.Date.ToString(“dd-MMM-yyyy”)
}
您的问题就在这里

if (@item.Viewings == 0 && StatusDays >= 14)
删除@符号

if (item.Viewings == 0 && StatusDays >= 14)
试试这个修改过的代码

@{
   foreach (var item in Model)
        {

            string RowColor = "Standard";
            string RowClassName = "row-" + item.CaseID;
            int StatusDays = int.Parse(item.StatusDays);

            if (item.Viewings == 0 && StatusDays >= 14)
            {
                RowColor = "Red";
            }


        <tr class="row-click @RowClassName @RowColor" data-url="/Case/Details/@item.CaseID/">
            <td>
                Html.DisplayFor(modelItem => item.CaseID)
            </td>
            <td>
                item.RegistrationDate.Date.ToString("dd-MMM-yyyy")
            </td>
        </tr>
       }
}
@{
foreach(模型中的var项目)
{
字符串RowColor=“标准”;
字符串RowClassName=“行-”+item.CaseID;
int StatusDays=int.Parse(item.StatusDays);
如果(item.Viewings==0&&StatusDays>=14)
{
RowColor=“红色”;
}
DisplayFor(modelItem=>item.CaseID)
item.RegistrationDate.Date.ToString(“dd-MMM-yyyy”)
}
}

很长时间没有使用razor,但我认为问题是您在代码中使用了更多@,例如在

 string RowClassName = "row-" + @item.CaseID;
 int StatusDays = int.Parse(@item.StatusDays);
应该是

 string RowClassName = "row-" + item.CaseID;
 int StatusDays = int.Parse(item.StatusDays);

为什么要添加相同的答案?@GlennPacker-答案与您的答案不同。@JBoom-因为您已经使用@{}创建了一个代码块,请确保您没有在代码块中使用任何@符号。请看更正后的代码,还有另一个@符号要删除,然后工作正常,谢谢。