我想选择isDeleted != true
的图像。
我在LINQ中有这个代码,因为我得到了所有图像,所以有些失败了。
Wine wine = (
from w in db.Wine
join img in (
from i in db.ImageWine
where i.isDeleted != true
select i)
on w.idWine equals img.idWine
where w.idWine == id
select w
).SingleOrDefault();
CSHTML
@foreach (var item in Model.ImageWine)
{
<tr>
<td class="text-center" id="IDProfile"><span>@Html.DisplayFor(m => item.idImageWine)</span></td>
<td id="Name"><span>@Html.DisplayFor(m => item.Image.urlImage)</span></td>
<td id="Image"><img src="@Url.Content("~/Images/"+ item.Image.urlImage)" class="img-thumbnail" width="200" height="150"/></td>
<td class="td-actions text-right" id="Actions">
<a class="btn btn-simple btn-danger btn-icon table-action remove" id="Delete" href="javascript:;" rel="tooltip" title="" data-original-title="Remove">
<i class="fa fa-remove"></i>
</a>
</td>
</tr>
}
我正在使用asp.net mvc razor。
答案 0 :(得分:1)
我想我明白会发生什么:
如果您将葡萄酒作为模型传递给您的视图,并且您有一个导航属性,可以让您获得给定葡萄酒的所有图像,如:
wine.ImageWine
然后你的linq查询没有做你想做的任何事情,因为它没有过滤图像。如果它至少有一个图像不能删除,它只会给你葡萄酒。
然后在你看来你可以这样做:
@foreach (var item in Model.ImageWine)
{
if(!item.isDeleted){
<tr>
<td class="text-center" id="IDProfile"><span>@Html.DisplayFor(m => item.idImageWine)</span></td>
<td id="Name"><span>@Html.DisplayFor(m => item.Image.urlImage)</span></td>
<td id="Image"><img src="@Url.Content("~/Images/"+ item.Image.urlImage)" class="img-thumbnail" width="200" height="150"/></td>
<td class="td-actions text-right" id="Actions">
<a class="btn btn-simple btn-danger btn-icon table-action remove" id="Delete" href="javascript:;" rel="tooltip" title="" data-original-title="Remove">
<i class="fa fa-remove"></i>
</a>
</td>
</tr>
}
}