首页 > 解决方案 > 如何根据模型中是否存在这样的值来显示一个元素?

问题描述

我有这样的代码:

<label>Manufacturer:</label>
<input type="checkbox" name="brand" value="A" /><span>A</span>
<input type="checkbox" name="brand" value="B" /><span>B</span>
<input type="checkbox" name="brand" value="C" /><span>C</span>
<input type="checkbox" name="brand" value="D" /><span>D</span>

输入可以是无限的。

如何检查模型是否具有具有一定价值的“品牌”?如果有,则输出“输入”,如果没有,则不输出。

我试图这样做,但它很愚蠢。

@model IEnumerable<BeautySouthKoreaSiteMVC.Models.Cosmetic>

@{
    int i = 0;
    foreach (var b in Model)
    {
        if (b.Brand.Contains("A") && i == 0)
        {
            <input type="checkbox" name="brand" value="A" /><span>A</span>
            i++;
        }
    }
}

有模型定义:

public class Cosmetic
{   
   [Display(Name = "Brand")]
   public string Brand { get; set; }

   // Some properties here...

}

标签: c#asp.net-mvcasp.net-corerazor

解决方案


因此,想法是FirstOrDefault()在集合上使用 with 谓词:

@if (Model.FirstOrDefault(p => p.Brand == "A") != null) 
{
    <input type="checkbox" name="brand" value="A" /><span>A</span> 
}
   

推荐阅读