Я использую JQuery.AJAX для загрузки файлов на сервер в ASP.NET MVC 5. код моего зрения:HttpPostedFileBase равна нулю при использовании AJAX в ASP MVC 5
<input type="file" size="45" name="file" id="file">
Javascript является :
<script>
$('#file').on("change", function() {
var formdata = new FormData($('form').get(0));
CallService(formdata);
});
function CallService(file) {
$.ajax({
url: '@Url.Action("Index", "Home")',
type: 'POST',
data: file,
cache: false,
success: function (color) {
;
},
error: function() {
alert('Error occured');
}
});
}
И, наконец, код из HomeController.cs:
public ActionResult Index (HttpPostedFileBase file)
{
...
}
Но каждый раз, когда вызывается действие индекса, объект HttpPostedFileBase
пуст. Я прочитал все темы по этому вопросу в формате SO, но не смог найти ответ. Я ввел правильное имя и оно соответствует имени параметра в контроллере. Что не так с кодом, так что объект всегда пуст?
Может ли это быть 'data: $ (this) .serialize(),' вместо 'data: {'file': $ (this) .serialize()},'. –
Также попробуйте [Fiddler] (http://www.telerik.com/fiddler) перехватить запросы и посмотреть, что на самом деле отправляется на сервер. –
@RDay Изменение данных ничего не изменило и оно по-прежнему равно нулю. Результат Скрипаче: Запрос Count: 1 Bytes Sent: 382 \t \t (заголовки: 382, тело: 0) Получено байт: 0 \t \t (заголовки: 0, тело: 0) РЕАКЦИЯ БАЙТ (by Content-Type) -------------- ~ headers ~: 0 –