Я загружаю файлы с помощью SWFUpload. Чтобы получить данные, которые мне нужно передать вместе с файлом, я добавляю параметры публикации в swfupload. Проблема в том, что созданный мною связыватель пользовательской модели не вызывается, когда метод контроллера вызывается с помощью swfupload. Некоторые свойства моей модели установлены, но не свойства, контролируемые моим настраиваемым связывателем, что означает, что он использует связыватель модели по умолчанию.
Когда я использую следующий метод JQuery, все работает так, как задумано. Так что проблема не в том, что моя привязка пользовательской модели настроена неправильно.
$.post('AsyncUpload', $('#uploadform').serialize());
Ниже приведен код, который я использую для настройки параметров публикации и запуска процесса загрузки. Обратите внимание, что мне известно о функции setPostParams, но по какой-то причине она у меня не работала, отсюда и работа. Также обратите внимание, что я проверил, что параметры сообщения устанавливаются правильно в переменной запроса на стороне сервера.
$('#uploadbutton').click(function (e) {
e.preventDefault();
var data = $('#uploadform').serialize();
var res = $.parseQuery(data);
for (key in res) {
swfu.addPostParam(key, res[key]);
}
swfu.startUpload();
});
Соответствующие переменные swfupload устанавливаются следующим образом.
upload_url: '<%= Url.Action("AsyncUpload")%>', //This becomes /Home/AsyncUpload
use_query_string: true, // I have also tried setting this to false to no effect
Это мой метод контроллера, такой как он есть.
[HttpPost]
public bool AsyncUpload(EditModel model)
{
if (Request.Files.Count <= 0)
return false;
return true;
}
Есть идеи, почему привязка пользовательской модели не вызывается?