我正在尝试实现一个可以获取不同数量的文件的文件上传器。文件输入元素的名称都相同,因此会生成 MVC3 乐意绑定的文件列表。
所以在我的控制器中我有
public virtual ViewResult UploadReceive(IEnumerable<HttpPostedFileBase> Files ){
这会得到它应该得到的所有文件。然而,所有空表单文件输入元素都添加一个空值。这阻止了控制器中的基本非空列表验证按我想要的方式工作。
验证如下:
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;
}
}
知道如何更改验证以一般仅计算非空元素吗?
如果您只想计算非空对象的数量,您可以将 LINQ 与IList
通过使用:
list.Cast<object>().Count(o => o != null)
或者,您可以只循环并计算每个非空对象。
int count = 0;
foreach (var item in list)
{
if (item != null)
count++;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)