У меня была такая же проблема в ASP.Net MVC с HttpPostedFilebase, и вместо использования формы в Submit мне нужно было использовать кнопку на клике, где мне нужно было что-то делать, а затем, если все ОК, отправьте форму, вот как я
$(".submitbtn").on("click", function(e) {
var form = $("#Form");
// you can't pass Jquery form it has to be javascript form object
var formData = new FormData(form[0]);
//if you only need to upload files then
//Grab the File upload control and append each file manually to FormData
//var files = form.find("#fileupload")[0].files;
//$.each(files, function() {
// var file = $(this);
// formData.append(file[0].name, file[0]);
//});
if ($(form).valid()) {
$.ajax({
type: "POST",
url: $(form).prop("action"),
//dataType: 'json', //not sure but works for me without this
data: formData,
contentType: false, //this is requireded please see answers above
processData: false, //this is requireded please see answers above
//cache: false, //not sure but works for me without this
error : ErrorHandler,
success : successHandler
});
}
});
это будет, чем правильно заполнить вашу модель MVC, пожалуйста, убедитесь, что в вашей модели свойство для HttpPostedFileBase [] имеет то же имя, что и имя элемента управления ввода в html, т. е.
<input id="fileupload" type="file" name="UploadedFiles" multiple>
public class MyViewModel
{
public HttpPostedFileBase[] UploadedFiles { get; set; }
}
Вы сказали, что хотите получить родительский документ на основе поля ребенка, но ваш запрос делает обратное. Вы хотите has_child
:
{
"query": {
"has_child" : {
"type" : "<child_type>",
"query" : {
"term" : {
"name" : "child_name"
}
}
}
}
}