gpt4 book ai didi

asp.net - 如何使用 MVC 属性验证列表具有大于零的非空元素?

转载 作者:行者123 更新时间:2023-12-01 02:40:53 25 4
gpt4 key购买 nike

我正在尝试实现一个可以接收各种文件数量的文件上传器。输入元素的文件都命名相同,因此生成 MVC3 愉快绑定(bind)到的文件列表。

所以在我的 Controller 中我有
public virtual ViewResult UploadReceive(IEnumerable<HttpPostedFileBase> Files ){
这会得到它应该得到的所有文件。但是,所有空的表单文件输入元素都添加了一个空值。这将阻止我在 Controller 中的基本非空列表验证按我的意愿工作。

验证如下:

public class EnsureMinimumElementsAttribute : ValidationAttribute
{
private readonly int _minElements;
public EnsureMinimumElementsAttribute(int minElements)
{
_minElements = minElements;
}

public override bool IsValid(object value)
{
var list = value as IList;
if (list != null)
{
return list.Count >= _minElements;
}
return false;
}
}

知道如何将验证更改为一般只计算非空元素吗?

最佳答案

如果您只想计算非空对象,您可以使用带有 IList 的 LINQ通过使用:

list.Cast<object>().Count(o => o != null)

或者,您可以循环并计算每个非空对象。
int count = 0;
foreach (var item in list)
{
if (item != null)
count++;
}

关于asp.net - 如何使用 MVC 属性验证列表具有大于零的非空元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8429127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com