さまざまな量のファイルを取り込むことができるファイルアップローダをimplmenetしようとしています。ファイル入力elemntsの名前はすべて同じで、MVC3がうまくバインドするファイルのリストを生成します。リストを検証するには、MVC属性を持つnull以外の要素がゼロより大きい
だから私のコントローラで私はこれはそれが必要すべてのファイルを取得します
public virtual ViewResult UploadReceive(IEnumerable<HttpPostedFileBase> Files){
を持っています。ただし、すべての空のフォームファイル入力要素にはnullが追加されます。これは、私が望むようにコントローラからの私の基本的な空でないリスト検証を停止させています。
検証は以下の通りです:
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;
}
}
私は唯一の非null要素を数える包括的に検証をどのように変化するかを任意のアイデア?
あなたのリストは空ではありませんが、ヌル要素を含んでいますか? 'return list.Count(i => i!= null)' –
が動作しません。私はエラーが発生する 'System.Collections.IList'には 'Count'の定義が含まれておらず、 'Count'は 'System.Collections.IList'タイプの最初の引数を受け入れる拡張メソッドではない – GraemeMiller
おそらく 'System.Linq' –