私はカスタムファイルアップローダを使用しており、ファイル[]という名前のファイルパラメータを渡す必要があります。これは意味をなさないので、ファイルアップローダのこのデフォルト名でファイルデータが送信されるためです。しかし、私はコントローラで同じパラメータ名を使用することはできません。ですから、入力制御の名前パラメータとしてファイル[]を使用するにはどうすればよいですか?ファイルをAJAX経由でコントローラに渡すことはできません
ビュー:
<input type="file" name="files[]" id="filer_input" multiple="multiple" >
<script>
function create(event) {
event.preventDefault();
var formdata = new FormData($('#frmCreate').get(0));
$.ajax({
type: "POST",
url: '@Url.Action("Create", "Experiment")',
cache: false,
dataType: "json",
data: formdata,
processData: false,
contentType: false
});
};
</script>
コントローラー:
public JsonResult Insert([Bind(Exclude = null)] ViewModel model,
IEnumerable<HttpPostedFileBase> files)
{
//code removed for brevity
}
任意のアイデア?
で含むFileContent機能を実装パラメータ。 –
確かに分かりませんが、var files = Request ["files []"]を使って試してみてください。 –
デフォルトのModelBinderはマルチパートリクエストでは機能しません。上記のように 'Request.Files'を使用するか、別のModelBinderを作成/検索する必要があります –