我正在使用 SWFUpload 上传文件。为了获取我需要与文件一起传递的数据,我将 post 参数添加到 swfupload。问题是我写的自定义模型绑定器在swfupload调用控制器方法时没有被调用。我的模型的某些属性已设置,但我的自定义绑定器控制的属性未设置,这意味着它使用的是默认模型绑定器。
当我使用以下 JQuery 方法时,一切都按预期工作。所以问题不在于我的自定义模型绑定器设置不正确。
$.post('AsyncUpload', $('#uploadform').serialize());
以下是我用来设置帖子参数并开始上传过程的代码。请注意,我知道 setPostParams 函数,但由于某种原因它对我不起作用,因此可以解决。另请注意,我验证了在服务器端的 Request 变量中正确设置了 post 参数。
$('#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;
}
为什么没有调用自定义模型绑定器的任何想法?