2017-01-25 17 views
0

フォーム入力時にファイル入力をモデルに正しくバインドできません。 私は以下のモデルにバインドしようとしています。ファイルをモデルにバインドする際にエラーが発生しました

のFileWrapperクラスを使用する理由は、それが事実上の辞書の代用で、私はどちらか働いていることを得ることができなかったので、ただ、辞書より別の何かを試してみることです。それが辞書で可能ならば、私はそれを元に戻すことができます。私は必要なもの

は異なるファイルリストには、いくつかの複数のファイルの入力をバインドできるようにすることです。したがって、FileWrapperにIENumerable<HttpPostedFileBase>があるのはなぜですか? FileWrappersをリストに含める理由は、ファイル入力の数が異なるためです。ビューは動的に生成されます。

私はこのようにバインドしようとすると、それは正しくバインドのようにインデックスが見えますが、ファイルリストは空です。

私は、余分なものを提供できる場合は私に知らせてください。

Htmlの

<input type="hidden" name="FileWrappers[0].Index" value="0" /> 
<input type="file" name="FileWrappers[0].Files" multiple> 

モデル

public class SpecialBeregningModel 
{   
    public List<FileWrapper> FileWrappers { get; set; } 

    public SpecialBeregningModel() 
    { 
     FileWrappers = new List<FileWrapper>(); 
    } 
} 

public class FileWrapper 
{ 
    public int Index { get; set; } 
    public IEnumerable<HttpPostedFile> Files { get; set; } 

    public FileWrapper() 
    { 
     Files = new List<HttpPostedFile>(); 
    } 
} 

答えて

1

あなたの財産はHttpPostedFileBase、ないHttpPostedFileする必要があります:

public IEnumerable<HttpPostedFileBase> Files { get; set; } 

フォーム入力は次のようになりますenctype="multipart/form-data"の属性が<form>であることを忘れないでください。

+0

まあ、それはまったく恥ずかしいことではありません!私は本当にFileBase(Copy paste typo)を使うことを忘れてしまった。ありがとう –

関連する問題