如果 Razor 视图中的 foreach 无法识别条件

Posted

技术标签:

【中文标题】如果 Razor 视图中的 foreach 无法识别条件【英文标题】:if condition not recognised in foreach in Razor view 【发布时间】:2014-06-13 20:44:07 【问题描述】:

请有人帮助我解决我的问题。我正在使用带有 CShtml 的 Web Matrix,一个使用 SQL 查询和 C# 的数据库。

var query = "SELECT Seat_Row, Seat_No, Booked FROM Seating_Plan WHERE Seat_Row = 'A'"; 
var db = Database.Open("TheatreBooking"); 

这里有我的 SQL 查询和我的数据库。 然后在 html <body> 我有以下内容:

@foreach (var item in db.Query(query)) 
 
    if ( @item.Booked = 1 ) 
     
        <img src="images/unavaliable.jpg"   > 
     

我遇到的问题是,在我的“if”语句中,没有找到 @item.Booked,但是,如果我在“if”语句之外使用它,@ 会按原样突出显示,我可以返回例如,变量嵌套在&lt;p&gt; 标签中。

我目前遇到的错误是“'WebMatrix.Data.DynamicRecord' 不包含 'Booked' 的定义”

谢谢

【问题讨论】:

请阅读How do I write a good title? 不是您的问题的实际解决方案,但可能会在以后为您节省面子 - @item.Booked == 1 您想检查它是否相等,而不是分配我认为 你可以试试strongly typed db query 【参考方案1】:

删除@符号应该可以工作:

if ( item.Booked = 1 ) 

【讨论】:

我猜它也应该是双等号。 和比较运算符而不是赋值一... :) 还要感谢所有指出 == facepalm 的人

以上是关于如果 Razor 视图中的 foreach 无法识别条件的主要内容,如果未能解决你的问题,请参考以下文章

MVC Razor 视图嵌套 foreach 的模型

Razor 查看动态表行

从对象中的集合中删除对象时,.net core 2.1 razor 页面视图无法正确更新

覆盖 asp.net core razor 页面中的 razor 视图

c# razor mvc textboxfor in foreach 循环

Razor视图中的@:和语法